Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet 68e8fcc5a2 Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.2.1@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
642 arquivos alterados com 53687 adições e 50330 exclusões
+296 -1
Ver Arquivo
@@ -1,6 +1,301 @@
CHANGES.txt - 2006-03-10
CHANGES.txt - 2006-05-22
------------------------
CHANGES IN CUPS V1.2.1
- The web interface did not handle reloads properly for
MSIE (STR #1716)
- The configure script no longer adds linker rpath
options when they are unnecessary.
- The scheduler could crash printing a debug message on
Solaris (STR #1714)
- The --enable-32bit and --enable-64bit configure options
did not always work.
- The password prompt showed the domain socket address
instead of "localhost" for local authentication (STR
#1706)
- The web interface filtered the list of printers even if
the user wasn't logged in (STR #1700)
- The IPP backend did not work reliably with some Xerox
printers (STR #1704)
- Trailing banners were not added when printing a single
file (STR #1698)
- The web interface support programs crashed on Solaris
(STR #1699)
- cupstestppd incorrectly reported problems with
*1284DeviceID attributes (STR #1710)
- Browsing could get disabled after a restart (STR #1670)
- Custom page sizes were not parsed properly (STR #1709)
- The -U option wasn't supported by lpadmin (STR #1702)
- The -u option didn't work with lpadmin (STR #1703)
- The scheduler did not create non-blocking back-channel
pipes, which caused problems when the printer driver
did not read the back-channel data (STR #1705)
- The scheduler no longer uses chunking in responses to
clients - this caused problems with older versions of
CUPS like 1.1.17 (PR #6143)
- Automatic raw printing was broken (STR #1667)
- 6-up printing was broken (STR #1697)
- The pstops filter did not disable CTRL-D processing on
the printer/RIP.
- ppdOpen*() did not load custom options properly (STR
#1680)
- "Set Printer Options" in the web interface did not
update the DefaultImageableArea or
DefaultPaperDimension attributes in the PPD file (STR
#1689)
- Fixed compile errors (STR #1682, STR #1684, STR #1685,
STR #1690)
- The lpstat command displayed the wrong error message
for a missing destination (STR #1683)
- Revised and completed the Polish translation (STR
#1669)
- Stopped jobs did not show up in the list of active jobs
(STR #1676)
- The configure script did not use the GNU TLS
"libgnutls-config" script to find the proper compiler
and linker options.
- The imagetoraster filter did not correctly generate
several 1, 2, and 4-bit color modes.
- cupsRasterWritePixels() could lose track of the current
output row.
- cupsRasterReadPixels() did not automatically swap
12/16-bit chunked pixel data.
- Moved the private _cups_raster_s structure out of the
public header.
- Updated the CUPS raster format specification to include
encoding rules and colorspace definitions.
- The Zebra PPD files had the wrong PostScript code for
the "default" option choices.
- The imagetoraster filter did not generate correct CIE
XYZ or Lab color data.
- The cups-config script did not work when invoked from a
source directory (STR #1673)
- The SNMP backend did not compile on systems that used
the getifaddrs emulation functions (STR #1668)
CHANGES IN CUPS V1.2.0
- Documentation updates (STR #1618, STR #1620, STR #1622,
STR #1637)
- Static file copy buffers reduced from 64k to 32k to
work around bogus MallocDebug library assumptions (STR
#1660)
- The scheduler did not decode the backend exit code
properly (STR #1648)
- The MacOS X USB backend did not report the 1284 device ID,
nor did it fix device IDs returned by HP printers.
- The scheduler started more slowly than 1.1.x with large
numbers of printers (STR #1653)
- cupsRasterInterpretPPD() didn't support the
cupsPreferredBitsPerColor attribute, and imagetoraster
didn't use the new API.
- The "make test" script did not create all of the necessary
subdirectories for testing (STR #1638)
- The scheduler did not prevent rotation of logs
redirected to /dev/null (STR #1651)
- "make test" did not include the SNMP backend in the
test environment (STR #1625)
- The EPM packaging files did not work (STR #1621)
- "Use Default Configuration" inserted a broken
configuration file (STR #1624)
- Redirects in the web interface did not always preserve
the encrypted status of a connection (STR #1603)
- Added the Apple "pap" backend.
- Added CUPS library to CUPS Image shared library
linkage to support Linux --as-needed linker option
(STR #1606)
- Fixed support for --enable-pie (STR #1609)
- The pdftops filter did not validate the length of the
encryption key (STR #1608)
- Updated the Polish localization.
- "Encryption Required" in the cupsd.conf file now only
requires encryption when the connection is not over the
loopback interface or domain socket.
- Printer names containing "+" were not quoted properly in
the web interface (STR #1600)
- The SNMP backend now reports the make and model in the
information string so that the auto-generated printer
name is more useful than just an IP address.
CHANGES IN CUPS V1.2rc3
- The cups-lpd program always did reverse lookups on the
client address, which could be a performance problem.
Added a "-n" option to disable lookups.
- When configured with SSL support, require encryption by
default when displaying the /admin location (STR #1592)
- The next job ID was not computed correctly if the job
cache file got out of sync with the spool directory
(STR #1582)
- The PNG image handling code used deprecated functions
from libpng (STR #1587)
- Added a Polish translation (STR #1584, STR #1586)
- More changes to the scheduler to improve battery life
on portable devices (STR #1583)
- Changed the default log level for status messages back
to "DEBUG" to be consistent with CUPS 1.1.x (STR #1579)
- The error string was not set properly when
cupsDoFileRequest() was given the name of a directory
(STR #1578)
- Fixed handling of job-hold-until (STR #1581)
- Added explicit notes to the cupsaddsmb man page
explaining that the driver filenames are case-sensitive
under UNIX and that they must be all lowercase (Windows
2000) or all UPPERCASE (Windows 95/98/Me) to work (STR
#1568)
- The USB backend incorrectly split the manufacturer name
if it contained spaces (STR #1566)
- The scheduler would hang when listing PPD files for a
manufacturer whose name contained spaces (STR #1567)
- Added the SNMP backend for network printer discovery
(STR #1555)
- cupstestppd now fails PPD files with 1284DeviceId
instead of 1284DeviceID, and cups-driverd uses a
case-insensitive comparison when looking for it (STR
#1573)
- cupsDoFileRequest() and cupsDoRequest() now work
properly with non-blocking HTTP connections.
- Added Swedish translation (STR #1569)
- "make install" now installs the MIME files with world
read permissions (STR #1565)
- More CDSA encryption support fixes (STR #1563)
- Updated the default mime.types file to support printing
of files that do not have a locally-recognized MIME
media type to raw or System V queues.
- Updated the serial port detection code on Linux (STR
#1562)
- Added some more error checking to httpGetHostname()
(STR #1561)
- The title of some administration pages was not
localized (STR #1548)
- The edit-config.tmpl file was not generated or
installed for the Spanish or Japanese localizations
(STR #1547)
- The mimeDelete() function freed the types before the
filters, but the filters needed the type data (STR #1558)
- The scheduler didn't keep track of the status pipes
properly, leading to a bad select() for multi-file jobs
(STR #1559)
- The cupstestdsc program didn't validate the ordinal
page number value for %%Page: comments.
CHANGES IN CUPS V1.2rc2
- The scheduler was not always using the string pool,
causing random crashes.
- The lpmove and the web interface's Move Job button did
not work with stopped jobs (STR #1534)
- The PostScript filter did not handle the page-set
option properly with number-up printing (STR #1543)
- The scheduler now only warns about unsupported ACLs
once (STR #1532)
- The "fitplot" option did not work with output from
Mozilla (STR #1542)
- The imagetops filter did not work with Level 2 or 3
printers (STR #1533)
- The scheduler now recognizes PostScript files with PJL
commands that do not include an ENTER LANGUAGE command.
- Added --with-printcap configure option.
- 64-bit SSL fixes for MacOS X.
- The scheduler didn't send some printer state change
events.
- The scheduler didn't send jobs to busy remote printers.
- Fixed some problems with the launchd support.
- Added new USB printer backend for MacOS X.
- The PostScript filter now handles files that start with
an incomplete PJL header (PR #6076)
- The web interface language selection code did not try
the generic language localization (STR #1531)
- The language cache, string pool, and transcoding caches
are now process global instead of per-thread to avoid
problems with GNOME and to allow for data sharing
between threads (STR #1530)
- Fixed a CUPS 1.1.x compatibility bug (STR #1528)
- The web interface redirection after certain printer
administration tasks was broken (STR #1516)
- Web interface authorization could get stuck (STR #1512)
- Localization updates (STR #1513, STR #1518, STR #1520)
- The pstops filter didn't work with some files (STR
#1523)
- "./configure --enable-static" didn't work (STR #1522)
- The scheduler was not using the configured default
Group (STR #1521)
- The web interface still did not show the localized time
and date for some locales and systems (STR #1509)
- httpAddrGetList() would crash on systems without
getaddrinfo().
- Socket URIs without a trailing slash would cause the
port number to not be accepted (STR #1519)
- Local raw and System V printers were not advertised as
such for printer browsing (STR #1502)
- The RPM spec file incorrectly put duplicate copies of
the Japanese and Spanish web interface templates in the
main cups package (STR #1517)
- cupsSetDests() did not explicitly set the permissions
of the /etc/cups/lpoptions file (STR #1508)
- The lpq command crashed with the -h option (STR #1515)
CHANGES IN CUPS V1.2rc1
- Documentation updates (STR #1497, STR #1498)
- The scheduler now redirects browsers to https: URLs
when encryption is required.
- The scheduler would crash when printing with a banner
(STR #1500)
- cups-driverd did not use the LanguageEncoding attribute
in PPD files to convert the NickName to UTF-8 (STR
#1503)
- The lpadmin command could not set the
printer-error-policy attribute (STR #1504)
- The web interface did not show the time and date in the
correct format for the locale (STR #1505)
- CUPS no longer accepts print jobs if a printer does not
support the file format (STR #1501)
- Cleaned up the PostScript filter (pstops) so that it
properly supports %%IncludeFeature and page scaling
(STR #1453)
- Fixed the cupsFileRewind() and cupsFileSeek() functions
to work properly with uncompressed files.
- Added cupsFileGetLine(), cupsFileStderr(),
cupsFileStdin(), and cupsFileStdout() functions to the
CUPS library.
- Added a new cupstestdsc program to test the DSC
conformance of PostScript files.
- Added KDE/GNOME icons and a Manage Printers menu item.
- Added --enable-image and --enable-pdftops configure
options to control whether the image and PDF filters
are built and installed (default = yes for all
platforms but MacOS X)
- Fixed a minor memory leak in the PPD API.
- Fixed transcoding issues (STR #1493)
- The scheduler now enforces a minimum job cost of 100
when doing FilterLimit checks.
- The scheduler would leak file descriptors when printing
to raw queues (STR #1491)
- The IPv6 support did not compile on Tru64 UNIX (STR
#1488)
- ppdOpen2() now converts the NickName and all UI text to
UTF-8 (STR #1475)
- The Set Allowed Users web page did not work (STR #1486)
- When the default policy was not set or set to a non-
existing policy, the scheduler did not set the default
policy name to "default" (STR #1484)
- The Zebra CPCL driver did not use the correct righthand
margin for the 4" wide label sizes.
- Fixed a problem with the parsing of fractional real
numbers in PPD files.
- Added Spanish localization files (STR #1480)
- Fixed localization of a few scheduler messages (STR
#1478)
- Fixed support for HEAD requests in the scheduler (STR
#1481)
CHANGES IN CUPS V1.2b2
- Updated the CUPS design description.
+33 -29
Ver Arquivo
@@ -1,37 +1,41 @@
CREDITS.txt - 02/23/2006
CREDITS.txt - 2006-04-17
------------------------
Few projects are completed by one person, and CUPS is no exception. We'd
like to thank the following individuals for their contributions:
Nathaniel Barbour - Lots of testing and feedback.
N. Becker - setsid().
Jean-Eric Cuendet - GhostScript filters for CUPS.
Van Dang - HTTP and IPP policeman.
L. Peter Deutsch - MD5 code.
Dr. ZP Han - setgid()/setuid().
Guy Harris - *BSD shared libraries and lots of other fixes.
Bjoern Jacke - I18N stuff.
Wang Jian - CUPS RPM corrections.
Roderick Johnstone - Beta tester of the millenium.
Till Kamppeter - Bug fixes, beta testing, evangelism.
Kenshi Muto - Japanese localization, patches, and testing.
Kiko - Bug fixes.
Sergey V. Kovalyov - ESP Print Pro and CUPS beta tester.
Mark Lawrence - Microsoft interoperability testing.
Jeff Licquia - Bug fixes, beta testing, evangelism.
Jason McMullan - Original CUPS RPM distributions.
Wes Morgan - *BSD fixes.
Ulrich Oldendorf - German locale.
Giulio Orsero - Bug fixes and testing.
Kurt Pfeifle - Bug fixes, beta testing, evangelism.
Gilles QUERRET - French man pages.
Petter Reinholdtsen - HP-UX compiler stuff.
Stuart Stevens - HP JetDirect IPP information.
Andrea Suatoni - IRIX desktop integration and testing.
Tomohiro Kato - Japanese localization.
Tim Waugh - Lots of patches, testing, and Linux integration.
Yugami - LDAP browsing support.
Nathaniel Barbour - Lots of testing and feedback.
N. Becker - setsid().
Jean-Eric Cuendet - GhostScript filters for CUPS.
Van Dang - HTTP and IPP policeman.
L. Peter Deutsch - MD5 code.
Dr. ZP Han - setgid()/setuid().
Guy Harris - *BSD shared libraries and lots of other
fixes.
Bjoern Jacke - I18N stuff.
Wang Jian - CUPS RPM corrections.
Roderick Johnstone - Beta tester of the millenium.
Till Kamppeter - Bug fixes, beta testing, evangelism.
Kenshi Muto - Japanese localization, patches, and
testing.
Kiko - Bug fixes.
Sergey V. Kovalyov - ESP Print Pro and CUPS beta tester.
Mark Lawrence - Microsoft interoperability testing.
Jeff Licquia - Bug fixes, beta testing, evangelism.
Jason McMullan - Original CUPS RPM distributions.
Wes Morgan - *BSD fixes.
Daniel Nylander - Swedish localization.
Giulio Orsero - Bug fixes and testing.
Michal Osowiecki - Polish localization.
Kurt Pfeifle - Bug fixes, beta testing, evangelism.
Petter Reinholdtsen - HP-UX compiler stuff.
Juan Pablo González Riopedre - Spanish localization
Stuart Stevens - HP JetDirect IPP information.
Andrea Suatoni - IRIX desktop integration and testing.
Tomohiro Kato - Japanese localization.
Tim Waugh - Lots of patches, testing, and Linux
integration.
Yugami - LDAP browsing support.
If I've missed someone, please let me know by sending an email to
"mike@easysw.com".
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
INSTALL - CUPS v1.2b2 - 2006-03-09
INSTALL - CUPS v1.2.0 - 2006-05-08
----------------------------------
This file describes how to compile and install CUPS from source
+33 -12
Ver Arquivo
@@ -73,6 +73,12 @@ CUPS_PRIMARY_SYSTEM_GROUP = @CUPS_PRIMARY_SYSTEM_GROUP@
CUPS_CONFIG_FILE_PERM = @CUPS_CONFIG_FILE_PERM@
CUPS_LOG_FILE_PERM = @CUPS_LOG_FILE_PERM@
#
# Languages to install...
#
LANGUAGES = @LANGUAGES@
#
# Libraries...
#
@@ -97,30 +103,42 @@ INSTALLSTATIC = @INSTALLSTATIC@
#
# Program options...
#
# OPTIM defines the common compiler optimization/debugging options.
# OPTIONS defines other compile-time options (currently only -dDEBUG for
# extra debug info)
# ARCHFLAGS Defines the default architecture build options, used
# when compiling separate 32/64-bit libraries.
# ARCH32FLAGS Defines the 32-bit architecture build options, used
# when compiling separate 32/64-bit libraries.
# ARCH64FLAGS Defines the 64-bit architecture build options, used
# when compiling separate 32/64-bit libraries.
# OPTIM Defines the common compiler optimization/debugging options
# for all architectures.
# OPTIONS Defines other compile-time options (currently only -DDEBUG
# for extra debug info)
#
ARCHFLAGS = @ARCHFLAGS@
ARFLAGS = @ARFLAGS@
BACKLIBS = @BACKLIBS@
CFLAGS = -I.. $(RC_CFLAGS) $(SSLFLAGS) @CPPFLAGS@ @CFLAGS@ \
CFLAGS = -I.. $(SSLFLAGS) @CPPFLAGS@ @CFLAGS@ \
@LARGEFILE@ @PTHREAD_FLAGS@ $(OPTIONS)
COMMONLIBS = @LIBS@
CUPSDLIBS = @CUPSDLIBS@
CXXFLAGS = -I.. $(RC_CFLAGS) $(SSLFLAGS) @CPPFLAGS@ @CXXFLAGS@ \
CXXFLAGS = -I.. $(SSLFLAGS) @CPPFLAGS@ @CXXFLAGS@ \
@LARGEFILE@ @PTHREAD_FLAGS@ $(OPTIONS)
CXXLIBS = @CXXLIBS@
DSOFLAGS = @DSOFLAGS@
DSOLIBS = @DSOLIBS@ $(COMMONLIBS)
IMGLIBS = @IMGLIBS@ -lm
LDFLAGS = -L../cups -L../filter $(RC_CFLAGS) @LDFLAGS@ $(OPTIM)
IMGFILTERS = @IMGFILTERS@
LDFLAGS = -L../cups -L../filter $(RC_CFLAGS) $(ARCHFLAGS) \
@LDFLAGS@ @PIEFLAGS@ $(OPTIM)
LINKCUPS = @LINKCUPS@ $(SSLLIBS)
LINKCUPSIMAGE = @LINKCUPSIMAGE@
LIBS = $(LINKCUPS) $(COMMONLIBS)
OPTIM = @OPTIM@
OPTIONS =
PAMLIBS = @PAMLIBS@
PAP = @PAP@
PDFTOPS = @PDFTOPS@
PHPDIR = @PHPDIR@
SSLFLAGS = @SSLFLAGS@
SSLLIBS = @SSLLIBS@
@@ -130,14 +148,16 @@ LAUNCHDLIBS = @LAUNCHDLIBS@
# Separate 32/64-bit library support...
#
C32FLAGS = @C32FLAGS@
ARCH32FLAGS = @ARCH32FLAGS@
DSO32FLAGS = @DSO32FLAGS@
INSTALL32 = @INSTALL32@
LIB32CUPS = @LIB32CUPS@
LIB32CUPSIMAGE = @LIB32CUPSIMAGE@
LIB32DIR = $(BUILDROOT)@LIB32DIR@
UNINSTALL32 = @UNINSTALL32@
C64FLAGS = @C64FLAGS@
ARCH64FLAGS = @ARCH64FLAGS@
DSO64FLAGS = @DSO64FLAGS@
INSTALL64 = @INSTALL64@
LIB64CUPS = @LIB64CUPS@
LIB64CUPSIMAGE = @LIB64CUPSIMAGE@
@@ -193,6 +213,7 @@ SBINDIR = $(BUILDROOT)@sbindir@
SERVERBIN = $(BUILDROOT)@CUPS_SERVERBIN@
SERVERROOT = $(BUILDROOT)@CUPS_SERVERROOT@
STATEDIR = $(BUILDROOT)@CUPS_STATEDIR@
XINETD = @XINETD@
MAN1EXT = @MAN1EXT@
MAN5EXT = @MAN5EXT@
@@ -216,19 +237,19 @@ DBUSDIR = @DBUSDIR@
.c.o:
echo Compiling $<...
$(CC) $(OPTIM) $(CFLAGS) -c $<
$(CC) $(ARCHFLAGS) $(OPTIM) $(CFLAGS) -c $<
.c.32.o:
echo Compiling 32-bit $<...
$(CC) $(C32FLAGS) $(OPTIM) $(CFLAGS) -c -o $@ $<
$(CC) $(ARCH32FLAGS) $(OPTIM) $(CFLAGS) -c -o $@ $<
.c.64.o:
echo Compiling 64-bit $<...
$(CC) $(C64FLAGS) $(OPTIM) $(CFLAGS) -c -o $@ $<
$(CC) $(ARCH64FLAGS) $(OPTIM) $(CFLAGS) -c -o $@ $<
.cxx.o:
echo Compiling $<...
$(CXX) $(OPTIM) $(CXXFLAGS) -c $<
$(CXX) $(ARCHFLAGS) $(OPTIM) $(CXXFLAGS) -c $<
.man.1 .man.1m .man.5 .man.7 .man.8:
echo Linking $<...
+54 -8
Ver Arquivo
@@ -29,7 +29,7 @@ include Makedefs
#
DIRS = cups backend berkeley cgi-bin filter locale man monitor \
notifier pdftops scheduler systemv test \
notifier $(PDFTOPS) scheduler systemv test \
$(PHPDIR) \
conf data doc fonts ppd templates
@@ -57,6 +57,25 @@ clean:
done
#
# Remove all non-distribution files...
#
distclean: clean
$(RM) Makedefs config.h config.log config.status
$(RM) cups-config conf/cupsd.conf conf/pam.std
$(RM) doc/help/standard.html doc/index.html
$(RM) init/cups.sh init/cups-lpd
$(RM) man/cups-deviced.man man/cups-driverd.man
$(RM) man/cups-lpd.man man/cupsaddsmb.man man/cupsd.man
$(RM) man/cupsd.conf.man man/lpoptions.man
$(RM) packaging/cups templates/edit-config.tmpl templates/header.tmpl
-$(RM) doc/*/index.html
-$(RM) templates/*/edit-config.tmpl
-$(RM) templates/*/header.tmpl
-$(RM) -r autom4te*.cache
#
# Make dependencies
#
@@ -80,8 +99,8 @@ install: installhdrs
echo Installing cups-config script...
$(INSTALL_DIR) -m 755 $(BINDIR)
$(INSTALL_SCRIPT) cups-config $(BINDIR)/cups-config
echo Installing startup script...
if test "x$(INITDIR)" != "x"; then \
if test "x$(INITDIR)" != x; then \
echo Installing init scripts...; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/init.d; \
$(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDIR)/init.d/cups; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc0.d; \
@@ -93,24 +112,45 @@ install: installhdrs
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc5.d; \
$(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDIR)/rc5.d/S99cups; \
fi
if test "x$(INITDIR)" = "x" -a "x$(INITDDIR)" != "x"; then \
if test "x$(INITDIR)" = x -a "x$(INITDDIR)" != x; then \
$(INSTALL_DIR) $(BUILDROOT)$(INITDDIR); \
if test "$(INITDDIR)" = "/System/Library/StartupItems/PrintingServices"; then \
echo Installing StartupItems files...; \
$(INSTALL_SCRIPT) init/PrintingServices $(BUILDROOT)$(INITDDIR)/PrintingServices; \
$(INSTALL_DATA) init/StartupParameters.plist $(BUILDROOT)$(INITDDIR)/StartupParameters.plist; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDDIR)/Resources/English.lproj; \
$(INSTALL_DATA) init/Localizable.strings $(BUILDROOT)$(INITDDIR)/Resources/English.lproj/Localizable.strings; \
elif test "$(INITDDIR)" = "/System/Library/LaunchDaemons"; then \
echo Installing LaunchDaemons configuration file...; \
$(INSTALL_DATA) init/org.cups.cupsd.plist $(BUILDROOT)$(DEFAULT_LAUNCHD_CONF); \
else \
echo Installing RC script...; \
$(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
fi \
fi
if test "x$(DBUSDIR)" != "x"; then \
if test "x$(DBUSDIR)" != x; then \
echo Installing cups.conf in $(DBUSDIR)...;\
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(DBUSDIR); \
$(INSTALL_DATA) packaging/cups-dbus.conf $(BUILDROOT)$(DBUSDIR)/cups.conf; \
fi
if test "x$(XINETD)" != x; then \
echo Installing xinetd configuration file for cups-lpd...; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(XINETD); \
$(INSTALL_DATA) init/cups-lpd $(BUILDROOT)$(XINETD)/cups-lpd; \
fi
if test -d /usr/share/applications; then \
echo Installing desktop icons...; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)/usr/share/applications; \
$(INSTALL_DATA) desktop/cups.desktop $(BUILDROOT)/usr/share/applications; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)/usr/share/icons/hicolor/16x16/apps; \
$(INSTALL_DATA) desktop/cups-16.png $(BUILDROOT)/usr/share/icons/hicolor/16x16/apps/cups.png; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)/usr/share/icons/hicolor/32x32/apps; \
$(INSTALL_DATA) desktop/cups-32.png $(BUILDROOT)/usr/share/icons/hicolor/32x32/apps/cups.png; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)/usr/share/icons/hicolor/64x64/apps; \
$(INSTALL_DATA) desktop/cups-64.png $(BUILDROOT)/usr/share/icons/hicolor/64x64/apps/cups.png; \
$(INSTALL_DIR) -m 755 $(BUILDROOT)/usr/share/icons/hicolor/128x128/apps; \
$(INSTALL_DATA) desktop/cups-128.png $(BUILDROOT)/usr/share/icons/hicolor/128x128/apps/cups.png; \
fi
#
@@ -138,7 +178,7 @@ uninstall:
$(RM) $(BINDIR)/cups-config
-$(RMDIR) $(BINDIR)
echo Uninstalling startup script...
if test "x$(INITDIR)" != "x"; then \
if test "x$(INITDIR)" != x; then \
$(RM) $(BUILDROOT)$(INITDIR)/init.d/cups; \
$(RMDIR) $(BUILDROOT)$(INITDIR)/init.d; \
$(RM) $(BUILDROOT)$(INITDIR)/rc0.d/K00cups; \
@@ -150,7 +190,7 @@ uninstall:
$(RM) $(BUILDROOT)$(INITDIR)/rc5.d/S99cups; \
$(RMDIR) $(BUILDROOT)$(INITDIR)/rc5.d; \
fi
if test "x$(INITDIR)" = "x" -a "x$(INITDDIR)" != "x"; then \
if test "x$(INITDIR)" = x -a "x$(INITDDIR)" != x; then \
if test "$(INITDDIR)" = "/System/Library/StartupItems/PrintingServices"; then \
$(RM) $(BUILDROOT)$(INITDDIR)/PrintingServices; \
$(RM) $(BUILDROOT)$(INITDDIR)/StartupParameters.plist; \
@@ -163,11 +203,17 @@ uninstall:
fi \
$(RMDIR) $(BUILDROOT)$(INITDDIR); \
fi
if test "x$(DBUSDIR)" != "x"; then \
if test "x$(DBUSDIR)" != x; then \
echo Uninstalling cups.conf in $(DBUSDIR)...;\
$(RM) $(BUILDROOT)$(DBUSDIR)/cups.conf; \
$(RMDIR) $(BUILDROOT)$(DBUSDIR); \
fi
$(RM) $(BUILDROOT)/etc/xinetd.d/cups-lpd
$(RM) $(BUILDROOT)/usr/share/applications/cups.desktop
$(RM) $(BUILDROOT)/usr/share/icons/hicolor/16x16/apps/cups.png
$(RM) $(BUILDROOT)/usr/share/icons/hicolor/32x32/apps/cups.png
$(RM) $(BUILDROOT)/usr/share/icons/hicolor/64x64/apps/cups.png
$(RM) $(BUILDROOT)/usr/share/icons/hicolor/128x128/apps/cups.png
#
+5 -3
Ver Arquivo
@@ -1,4 +1,4 @@
README - CUPS v1.2b2 - 2006-03-09
README - CUPS v1.2.0 - 2006-05-08
---------------------------------
Looking for compile instructions? Read the file "INSTALL.txt"
@@ -26,8 +26,8 @@ INTRODUCTION
of GPL Ghostscript for CUPS called ESP Ghostscript is
available separately to support printing of PostScript files
within the CUPS driver framework. Sample drivers for Dymo,
EPSON, HP, and OKIDATA printers are included that use these
filters.
EPSON, HP, OKIDATA, and Zebra printers are included that use
these filters.
Drivers for thousands of printers are provided with our ESP
Print Pro software, available at:
@@ -108,9 +108,11 @@ SETTING UP PRINTER QUEUES FROM THE COMMAND-LINE
EPSON 9-pin Series epson9.ppd
EPSON 24-pin Series epson24.ppd
HP DeskJet Series deskjet.ppd
HP New DeskJet Series deskjet2.ppd
HP LaserJet Series laserjet.ppd
OKIDATA 9-Pin Series okidata9.ppd
OKIDATA 24-Pin Series okidat24.ppd
Zebra CPCL Label Printer zebracpl.ppd
Zebra EPL1 Label Printer zebraep1.ppd
Zebra EPL2 Label Printer zebraep2.ppd
Zebra ZPL Label Printer zebra.ppd
+5
Ver Arquivo
@@ -19,6 +19,11 @@ scsi.o: ../cups/language.h ../cups/string.h ../config.h
serial.o: ../cups/backend.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
serial.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
serial.o: ../cups/language.h ../cups/string.h ../config.h
snmp.o: ../cups/backend.h ../cups/http-private.h ../config.h ../cups/http.h
snmp.o: ../cups/md5.h ../cups/ipp-private.h ../cups/ipp.h ../cups/cups.h
snmp.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
snmp.o: ../cups/string.h ../cups/array.h ../cups/file.h ieee1284.c
snmp.o: ../cups/debug.h
socket.o: ../cups/backend.h ../cups/http-private.h ../config.h ../cups/http.h
socket.o: ../cups/md5.h ../cups/ipp-private.h ../cups/ipp.h ../cups/cups.h
socket.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
+21 -3
Ver Arquivo
@@ -27,10 +27,10 @@
include ../Makedefs
RBACKENDS = ipp lpd
UBACKENDS = parallel scsi serial socket usb
UBACKENDS = $(PAP) parallel scsi serial snmp socket usb
TARGETS = betest test1284 $(RBACKENDS) $(UBACKENDS)
OBJS = betest.o ipp.o lpd.o parallel.o scsi.o \
serial.o socket.o test1284.o usb.o
OBJS = betest.o ipp.o lpd.o pap.o parallel.o scsi.o \
serial.o snmp.o socket.o test1284.o usb.o
#
@@ -136,6 +136,15 @@ lpd: lpd.o ../cups/$(LIBCUPS)
$(CC) $(LDFLAGS) -o lpd lpd.o $(LIBS)
#
# pap
#
pap: pap.o ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o pap pap.o $(BACKLIBS) $(LIBS) -framework AppleTalk
#
# parallel
#
@@ -165,6 +174,15 @@ serial: serial.o ../cups/$(LIBCUPS)
$(CC) $(LDFLAGS) -o serial serial.o $(BACKLIBS) $(LIBS)
#
# snmp
#
snmp: snmp.o ../cups/$(LIBCUPS)
echo Linking $@...
$(CC) $(LDFLAGS) -o snmp snmp.o $(LIBS)
#
# socket
#
+248 -111
Ver Arquivo
@@ -25,8 +25,9 @@
*
* Contents:
*
* get_device_id() - Get the IEEE-1284 device ID string and corresponding
* URI.
* get_device_id() - Get the IEEE-1284 device ID string and corresponding
* URI.
* get_make_model() - Get the make and model string from the device ID.
*/
/*
@@ -34,21 +35,14 @@
*/
#include <cups/debug.h>
#ifdef __linux
# include <sys/ioctl.h>
# 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)
#endif /* __linux */
#ifdef __sun
# ifdef __sparc
# include <sys/ecppio.h>
# else
# include <sys/ioccom.h>
# include <sys/ecppsys.h>
# endif /* __sparc */
#endif /* __sun */
/*
* Prototypes...
*/
static int get_make_model(const char *device_id, char *make_model,
int make_model_size);
/*
@@ -56,6 +50,24 @@
* corresponding URI.
*/
#ifndef SNMP_BACKEND
# ifdef __linux
# include <sys/ioctl.h>
# 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)
# endif /* __linux */
# ifdef __sun
# ifdef __sparc
# include <sys/ecppio.h>
# else
# include <sys/ioccom.h>
# include <sys/ecppsys.h>
# endif /* __sparc */
# endif /* __sun */
int /* O - 0 on success, -1 on failure */
get_device_id(
int fd, /* I - File descriptor */
@@ -70,9 +82,9 @@ get_device_id(
char *attr, /* 1284 attribute */
*delim, /* 1284 delimiter */
*uriptr, /* Pointer into URI */
*mfg, /* Manufacturer string */
*mdl, /* Model string */
manufacturer[256], /* Manufacturer string */
serial_number[1024]; /* Serial number string */
int manulen; /* Length of manufacturer string */
#ifdef __linux
int length; /* Length of device ID info */
#endif /* __linux */
@@ -80,6 +92,7 @@ get_device_id(
struct ecpp_device_id did; /* Device ID buffer */
#endif /* __sun && ECPPIOC_GETDEVID */
DEBUG_printf(("get_device_id(fd=%d, device_id=%p, device_id_size=%d, "
"make_model=%p, make_model_size=%d, scheme=\"%s\", "
"uri=%p, uri_size=%d)\n", fd, device_id, device_id_size,
@@ -174,6 +187,157 @@ get_device_id(
if (!*device_id)
return (-1);
/*
* Get the make and model...
*/
get_make_model(device_id, make_model, make_model_size);
/*
* Then generate a device URI...
*/
if (scheme && uri && uri_size > 32)
{
/*
* Look for the serial number field...
*/
if ((attr = strstr(device_id, "SERN:")) != NULL)
attr += 5;
else if ((attr = strstr(device_id, "SERIALNUMBER:")) != NULL)
attr += 13;
else if ((attr = strstr(device_id, ";SN:")) != NULL)
attr += 4;
if (attr)
{
strlcpy(serial_number, attr, sizeof(serial_number));
if ((delim = strchr(serial_number, ';')) != NULL)
*delim = '\0';
}
else
serial_number[0] = '\0';
/*
* Generate the device URI from the manufacturer, make_model, and
* serial number strings.
*/
snprintf(uri, uri_size, "%s://", scheme);
if ((attr = strstr(device_id, "MANUFACTURER:")) != NULL)
attr += 13;
else if ((attr = strstr(device_id, "Manufacturer:")) != NULL)
attr += 13;
else if ((attr = strstr(device_id, "MFG:")) != NULL)
attr += 4;
if (attr)
{
strlcpy(manufacturer, attr, sizeof(manufacturer));
if ((delim = strchr(manufacturer, ';')) != NULL)
*delim = '\0';
if (!strcasecmp(manufacturer, "Hewlett-Packard"))
strcpy(manufacturer, "HP");
}
else
{
strlcpy(manufacturer, make_model, sizeof(manufacturer));
if ((delim = strchr(manufacturer, ' ')) != NULL)
*delim = '\0';
}
manulen = strlen(manufacturer);
for (uriptr = uri + strlen(uri), delim = manufacturer;
*delim && uriptr < (uri + uri_size - 3);
delim ++)
if (*delim == ' ')
{
*uriptr++ = '%';
*uriptr++ = '2';
*uriptr++ = '0';
}
else
*uriptr++ = *delim;
*uriptr++ = '/';
if (!strncasecmp(make_model, manufacturer, manulen))
{
delim = make_model + manulen;
while (isspace(*delim & 255))
delim ++;
}
else
delim = make_model;
for (; *delim && uriptr < (uri + uri_size - 3); delim ++)
if (*delim == ' ')
{
*uriptr++ = '%';
*uriptr++ = '2';
*uriptr++ = '0';
}
else
*uriptr++ = *delim;
if (serial_number[0])
{
/*
* Add the serial number to the URI...
*/
strlcpy(uriptr, "?serial=", uri_size - (uriptr - uri));
strlcat(uriptr, serial_number, uri_size - (uriptr - uri));
}
else
*uriptr = '\0';
}
return (0);
}
#endif /* !SNMP_BACKEND */
/*
* 'get_make_model()' - Get the make and model string from the device ID.
*/
int /* O - 0 on success, -1 on failure */
get_make_model(
const char *device_id, /* O - 1284 device ID */
char *make_model, /* O - Make/model */
int make_model_size) /* I - Size of buffer */
{
char *attr, /* 1284 attribute */
*delim, /* 1284 delimiter */
*mfg, /* Manufacturer string */
*mdl; /* Model string */
DEBUG_printf(("get_make_model(device_id=\"%s\", "
"make_model=%p, make_model_size=%d)\n", device_id,
make_model, make_model_size));
/*
* Range check input...
*/
if (!device_id || !*device_id || !make_model || make_model_size < 32)
{
DEBUG_puts("get_make_model: Bad args!");
return (-1);
}
*make_model = '\0';
/*
* Look for the description field...
*/
@@ -224,15 +388,62 @@ get_device_id(
if ((mfg = strstr(device_id, "MANUFACTURER:")) != NULL)
mfg += 13;
else if ((mfg = strstr(device_id, "Manufacturer:")) != NULL)
mfg += 13;
else if ((mfg = strstr(device_id, "MFG:")) != NULL)
mfg += 4;
if ((mdl = strstr(device_id, "MODEL:")) != NULL)
mdl += 6;
else if ((mdl = strstr(device_id, "Model:")) != NULL)
mdl += 6;
else if ((mdl = strstr(device_id, "MDL:")) != NULL)
mdl += 4;
if (attr)
if (mdl)
{
/*
* Build a make-model string from the manufacturer and model attributes...
*/
if (mfg)
{
if (!strncasecmp(mfg, "Hewlett-Packard", 15))
strlcpy(make_model, "HP", make_model_size);
else
strlcpy(make_model, mfg, make_model_size);
if ((delim = strchr(make_model, ';')) != NULL)
*delim = '\0';
if (!strncasecmp(make_model, mdl, strlen(make_model)))
{
/*
* Just copy model string, since it has the manufacturer...
*/
strlcpy(make_model, mdl, make_model_size);
}
else
{
/*
* Concatenate the make and model...
*/
strlcat(make_model, " ", make_model_size);
strlcat(make_model, mdl, make_model_size);
}
}
else
{
/*
* Just copy model string, since it has the manufacturer...
*/
strlcpy(make_model, mdl, make_model_size);
}
}
else if (attr)
{
/*
* Use description...
@@ -257,38 +468,6 @@ get_device_id(
strlcpy(make_model, attr, make_model_size);
}
}
else if (mfg && mdl)
{
/*
* Build a make-model string from the manufacturer and model attributes...
*/
if (!strncasecmp(mfg, "Hewlett-Packard", 15))
strlcpy(make_model, "HP", make_model_size);
else
strlcpy(make_model, mfg, make_model_size);
if ((delim = strchr(make_model, ';')) != NULL)
*delim = '\0';
if (!strncasecmp(make_model, mdl, strlen(make_model)))
{
/*
* Just copy model string, since it has the manufacturer...
*/
strlcpy(make_model, mdl, make_model_size);
}
else
{
/*
* Concatenate the make and model...
*/
strlcat(make_model, " ", make_model_size);
strlcat(make_model, mdl, make_model_size);
}
}
else
{
/*
@@ -298,73 +477,31 @@ get_device_id(
strlcpy(make_model, "Unknown", make_model_size);
}
/*
* Strip trailing data...
*/
if ((delim = strchr(make_model, ';')) != NULL)
*delim = '\0';
if (scheme && uri && uri_size > 32)
{
/*
* Look for the serial number field...
*/
/*
* Strip trailing whitespace...
*/
if ((attr = strstr(device_id, "SERN:")) != NULL)
attr += 5;
else if ((attr = strstr(device_id, "SERIALNUMBER:")) != NULL)
attr += 13;
else if ((attr = strstr(device_id, ";SN:")) != NULL)
attr += 4;
if (attr)
{
strlcpy(serial_number, attr, sizeof(serial_number));
if ((delim = strchr(serial_number, ';')) != NULL)
*delim = '\0';
}
for (delim = make_model + strlen(make_model) - 1; delim >= make_model; delim --)
if (isspace(*delim & 255))
*delim = '\0';
else
serial_number[0] = '\0';
break;
/*
* Generate the device URI from the make_model and serial number strings.
*/
/*
* Return...
*/
snprintf(uri, uri_size, "%s://", scheme);
for (uriptr = uri + strlen(uri), delim = make_model;
*delim && uriptr < (uri + uri_size - 1);
delim ++)
if (*delim == ' ')
{
delim ++;
*uriptr++ = '/';
break;
}
else
*uriptr++ = *delim;
for (; *delim && uriptr < (uri + uri_size - 3); delim ++)
if (*delim == ' ')
{
*uriptr++ = '%';
*uriptr++ = '2';
*uriptr++ = '0';
}
else
*uriptr++ = *delim;
*uriptr = '\0';
if (serial_number[0])
{
/*
* Add the serial number to the URI...
*/
strlcat(uri, "?serial=", uri_size);
strlcat(uri, serial_number, uri_size);
}
}
return (0);
if (make_model[0])
return (0);
else
return (-1);
}
+2 -2
Ver Arquivo
@@ -276,7 +276,7 @@ main(int argc, /* I - Number of command-line args */
*ptr++ = *optptr++;
*ptr = '\0';
if (*optptr == '+')
if (*optptr == '+' || *optptr == '&')
optptr ++;
}
else
@@ -1215,7 +1215,7 @@ compress_files(int num_files, /* I - Number of files */
*out; /* Output file */
struct stat outinfo; /* Output file information */
char filename[1024], /* Temporary filename */
buffer[65536]; /* Copy buffer */
buffer[32768]; /* Copy buffer */
fprintf(stderr, "DEBUG: Compressing %d job files...\n", num_files);
+1 -1
Ver Arquivo
@@ -590,7 +590,7 @@ lpd_queue(const char *hostname, /* I - Host to connect to */
#endif /* __APPLE__ */
size_t nbytes; /* Number of bytes written */
off_t tbytes; /* Total bytes written */
char buffer[65536]; /* Output buffer */
char buffer[32768]; /* Output buffer */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
+1568
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
-2
Ver Arquivo
@@ -466,8 +466,6 @@ list_devices(void)
strcpy(basedevice, "/dev/parallel/");
else if (!access("/dev/printers/", 0))
strcpy(basedevice, "/dev/printers/");
else if (!access("/dev/par0", 0))
strcpy(basedevice, "/dev/par");
else
strcpy(basedevice, "/dev/lp");
+48 -13
Ver Arquivo
@@ -87,6 +87,11 @@
# include <IOKit/IOBSD.h>
#endif /* __APPLE__ */
#if defined(__linux) && defined(TIOCGSERIAL)
# include <linux/serial.h>
# include <linux/ioctl.h>
#endif /* __linux && TIOCGSERIAL */
/*
* Local functions...
@@ -305,7 +310,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*ptr++ = *options++;
*ptr = '\0';
if (*options == '+')
if (*options == '+' || *options == '&')
options ++;
}
else
@@ -663,21 +668,48 @@ list_devices(void)
{
#if defined(__hpux) || defined(__sgi) || defined(__sun) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
static char *funky_hex = "0123456789abcdefghijklmnopqrstuvwxyz";
/* Funky hex numbering used for some devices */
/* Funky hex numbering used for some *
* devices */
#endif /* __hpux || __sgi || __sun || __FreeBSD__ || __OpenBSD__ */
#if defined(__linux) || defined(linux) || defined(__linux__)
int i, j; /* Looping vars */
int fd; /* File descriptor */
char device[255]; /* Device filename */
#ifdef __linux
int i, j; /* Looping vars */
int fd; /* File descriptor */
char device[255]; /* Device filename */
# ifdef TIOCGSERIAL
struct serial_struct serinfo; /* serial port info */
# endif /* TIOCGSERIAL */
for (i = 0; i < 100; i ++)
{
sprintf(device, "/dev/ttyS%d", i);
if ((fd = open(device, O_WRONLY | O_NOCTTY | O_NDELAY)) >= 0)
{
# ifdef TIOCGSERIAL
/*
* See if this port exists...
*/
serinfo.reserved_char[0] = 0;
if (!ioctl(fd, TIOCGSERIAL, &serinfo))
{
if (serinfo.type == PORT_UNKNOWN)
{
/*
* Nope...
*/
close(fd);
continue;
}
}
# endif /* TIOCGSERIAL */
close(fd);
# if defined(_ARCH_PPC) || defined(powerpc) || defined(__powerpc)
printf("serial serial:%s?baud=230400 \"Unknown\" \"Serial Port #%d\"\n",
device, i + 1);
@@ -824,13 +856,13 @@ list_devices(void)
{
sprintf(device, "/dev/cua/%c", 'a' + i);
if (access(device, 0) == 0)
#ifdef B115200
# ifdef B115200
printf("serial serial:%s?baud=115200 \"Unknown\" \"Serial Port #%d\"\n",
device, i + 1);
#else
# else
printf("serial serial:%s?baud=38400 \"Unknown\" \"Serial Port #%d\"\n",
device, i + 1);
#endif /* B115200 */
# endif /* B115200 */
}
/*
@@ -1063,7 +1095,6 @@ list_devices(void)
CFMutableDictionaryRef classesToMatch;
io_object_t serialService;
printf("serial serial \"Unknown\" \"Serial Printer (serial)\"\n");
kernResult = IOMasterPort(MACH_PORT_NULL, &masterPort);
if (KERN_SUCCESS != kernResult)
@@ -1117,8 +1148,8 @@ list_devices(void)
CFRelease(bsdPathAsCFString);
if (result)
printf("serial serial:%s?baud=115200 \"Unknown\" \"%s\"\n", bsdPath,
serialName);
printf("serial serial:%s?baud=115200 \"Unknown\" \"%s\"\n",
bsdPath, serialName);
}
}
}
@@ -1126,7 +1157,11 @@ list_devices(void)
IOObjectRelease(serialService);
}
IOObjectRelease(serialPortIterator); /* Release the iterator. */
/*
* Release the iterator.
*/
IOObjectRelease(serialPortIterator);
}
}
#endif
+2216
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+172
Ver Arquivo
@@ -0,0 +1,172 @@
snmp.txt - 2006-04-19
---------------------
This file lists the "interesting" bits from the command:
snmpwalk -v 1 -c public HOST .1
for many network print servers and internal cards. It is mainly here
for SNMP documentation and development purposes.
AXIS 5600
SNMPv2-MIB::sysDescr.0 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM J.sp.00,JETDIRECT EX,JD28,EEPROM 6.16.5
SNMPv2-MIB::sysName.0 = STRING:
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.2 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.3 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: Hewlett-Packard hp LaserJet 3380
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: Axis AXIS 5600
HOST-RESOURCES-MIB::hrDeviceDescr.3 = STRING: Axis AXIS 5600
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.2 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.3 = OID: SNMPv2-SMI::zeroDotZero
SNMPv2-SMI::enterprises.11.2.4.3.10.8.0 = STRING: "AXIS433AE8"
SNMPv2-SMI::enterprises.368.2.3.2.601.0 = INTEGER: 9100
SNMPv2-SMI::enterprises.368.2.3.2.602.0 = INTEGER: 9101
SNMPv2-SMI::enterprises.368.2.3.2.603.0 = INTEGER: 9102
SNMPv2-SMI::enterprises.368.2.3.10.901.0 = STRING: "AXIS433AE8"
AXIS OfficeBasic
SNMPv2-MIB::sysDescr.0 = STRING: AXIS OfficeBasic Parallel Network Print Server V6.43 Sep 4 2003
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: EPSON Stylus Photo 870
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::zeroDotZero
DLink DP-301P+
SNMPv2-MIB::sysDescr.0 = STRING: D-Link DP-301P+ Print Server
Genicom ML280
SNMPv2-MIB::sysDescr.0 = STRING: GENICOM microLaser 280
SNMPv2-MIB::sysName.0 = STRING: PRQ_004F75
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: MANUFACTURER:GENICOM;MODEL:microLaser 280;
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.3369.1.1.2.4
EPSON Type-B Network Card
SNMPv2-MIB::sysDescr.0 = STRING: EPSON Type-B 10Base-T/100Base-TX Print Server
SNMPv2-MIB::sysName.0 = STRING: StylusPro7600-BB87A8
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: EPSON Stylus Pro 7600
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.1248.1.2.1.22.69.109.117.108.97.116.101.83.116.121.108.117.115.32.80.114.111.32.55.54.48.48
SNMPv2-SMI::enterprises.11.2.3.9.1.1.7.0 = STRING: "MFG:EPSON;CMD:ESCPL2,BDC;MDL:Stylus Pro 7600;CLS:PRINTER;DES:EPSON Stylus Pro 7600;"
SNMPv2-SMI::enterprises.1248.1.2.2.1.1.1.1.1 = STRING: "MFG:EPSON;CMD:ESCPL2,BDC;MDL:Stylus Pro 7600;CLS:PRINTER;DES:EPSON Stylus Pro 7600;"
EPSON Wireless 802.11b Print Server
SNMPv2-MIB::sysDescr.0 = STRING: EPSON Wireless LAN Print Interface compatible with an HP JETDIRECT EX
SNMPv2-MIB::sysName.0 = STRING: EAI_0F550B
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING:
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::zeroDotZero
HP JetDirect EX3plus
SNMPv2-MIB::sysDescr.0 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM D.04.03,JETDIRECT EX,JD26,EEPROM D.05.22
SNMPv2-MIB::sysName.0 = STRING: NPID1EC0F
HP LJ4000
SNMPv2-MIB::sysDescr.0 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM G.05.34,JETDIRECT,JD30,EEPROM G.08.32
SNMPv2-MIB::sysName.0 = STRING:
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: HP LaserJet 4000 Series
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.11.2.3.9.1.2.5
HP CLJ4550
SNMPv2-MIB::sysDescr.0 = STRING: HP ETHERNET MULTI-ENVIRONMENT,ROM L.20.07,JETDIRECT,JD84,EEPROM L.21.22,CIDATE 07/06/2001
SNMPv2-MIB::sysName.0 = STRING: NPI02FDE7
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: HP Color LaserJet 4550
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: Hewlett-Packard Dynamic RAM Disk
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.11.2.3.9.1.2.14
Lexmark C522
SNMPv2-MIB::sysDescr.0 = STRING: Lexmark C522 version NS.NP.N212 kernel 2.6.6 All-N-1
SNMPv2-MIB::sysName.0 = STRING: ET0004000D0CCA
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.2 = OID: HOST-RESOURCES-TYPES::hrDeviceNonVolatileMemory
HOST-RESOURCES-MIB::hrDeviceType.3 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.4 = OID: HOST-RESOURCES-TYPES::hrDeviceSerialPort
HOST-RESOURCES-MIB::hrDeviceType.5 = OID: HOST-RESOURCES-TYPES::hrDeviceNetwork
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: Lexmark C522 9421TTV LS.FA.P129
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: Nonvolatile RAM
HOST-RESOURCES-MIB::hrDeviceDescr.3 = STRING: IBM 750 Rev CXr
HOST-RESOURCES-MIB::hrDeviceDescr.4 = STRING: USB Interface
HOST-RESOURCES-MIB::hrDeviceDescr.5 = STRING: Network Interface
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.2 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.3 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.4 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrDeviceID.5 = OID: SNMPv2-SMI::enterprises.641.1
SNMPv2-SMI::enterprises.641.2.1.2.1.2.1 = STRING: "Lexmark C522"
SNMPv2-SMI::enterprises.641.2.1.2.1.3.1 = STRING: "MANUFACTURER:Lexmark International;COMMAND SET:;MODEL:Lexmark C522"
Linksys EPSX3
SNMPv2-MIB::sysDescr.0 = STRING: ETHERNET MULTI-ENVIRONMENT.ROM, JETDIRECT EX, EEPROM 6016
NetGear PS113
SNMPv2-MIB::sysDescr.0 = STRING: A SNMP proxy agent.
Okidata C7200
SNMPv2-MIB::sysDescr.0 = STRING: OkiLAN 6200e
SNMPv2-MIB::sysName.0 = STRING: OKI7009715
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.2 = OID: HOST-RESOURCES-TYPES::hrDeviceNonVolat
ileMemory
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: C7200
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: FLASH0
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.2001.1.1.1.1
HOST-RESOURCES-MIB::hrDeviceID.2 = OID: SNMPv2-SMI::zeroDotZero
SNMPv2-SMI::mib-2.43.14.1.1.3.1.1 = STRING: "IEEE 1284"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.2 = STRING: "EtherTalk Phase 2"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.3 = STRING: "LPD"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.4 = STRING: "Netware Rprinter"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.5 = STRING: "Netware Bindery or NDS Pserver"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.6 = STRING: "Raw TCP Port 9100"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.7 = STRING: "FTP"
SNMPv2-SMI::mib-2.43.14.1.1.3.1.8 = STRING: "DLC/LLC"
SNMPv2-SMI::enterprises.2001.1.1.1.1.1.3530.0 = STRING: "C7200"
Xerox N2025
SNMPv2-MIB::sysDescr.0 = STRING: Xerox DocuPrint N2025 Network Laser Printer - 2.12-02
SNMPv2-MIB::sysName.0 = STRING:
HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
HOST-RESOURCES-MIB::hrDeviceType.2 = OID: HOST-RESOURCES-TYPES::hrDeviceParallelPort
HOST-RESOURCES-MIB::hrDeviceType.3 = OID: HOST-RESOURCES-TYPES::hrDeviceNetwork
HOST-RESOURCES-MIB::hrDeviceType.6 = OID: HOST-RESOURCES-TYPES::hrDeviceProcessor
HOST-RESOURCES-MIB::hrDeviceType.7 = OID: HOST-RESOURCES-TYPES::hrDeviceOther
HOST-RESOURCES-MIB::hrDeviceType.9 = OID: HOST-RESOURCES-TYPES::hrDeviceVolatileMemory
HOST-RESOURCES-MIB::hrDeviceType.10 = OID: HOST-RESOURCES-TYPES::hrDeviceNonVolatileMemory
HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: Xerox DocuPrint N2025 Network Laser Printer - 2.12-02
HOST-RESOURCES-MIB::hrDeviceDescr.2 = STRING: IEEE 1284 port
HOST-RESOURCES-MIB::hrDeviceDescr.3 = STRING: Ethernet port
HOST-RESOURCES-MIB::hrDeviceDescr.6 = STRING: Motorola Power PC
HOST-RESOURCES-MIB::hrDeviceDescr.7 = STRING: USB Port
HOST-RESOURCES-MIB::hrDeviceDescr.9 = STRING: RAM Memory
HOST-RESOURCES-MIB::hrDeviceDescr.10 = STRING: ROM Memory
HOST-RESOURCES-MIB::hrDeviceID.1 = OID: SNMPv2-SMI::enterprises.253.8.62.1.3.2.17.1
+1260 -1814
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+17 -2
Ver Arquivo
@@ -56,8 +56,11 @@ print_device(const char *uri, /* I - Device URI */
const char *resource, /* I - Resource/modelname */
const char *options, /* I - Device options/serial number */
int fp, /* I - File descriptor to print */
int copies) /* I - Copies to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
int usebc; /* Use backchannel path? */
int fd; /* USB device */
int rbytes; /* Number of bytes read */
int wbytes; /* Number of bytes written */
@@ -77,6 +80,16 @@ print_device(const char *uri, /* I - Device URI */
unsigned int status; /* Port status (off-line, out-of-paper, etc.) */
#endif /* __linux */
(void)argc;
(void)argv;
/*
* Disable backchannel data when printing to Canon USB printers - apparently
* Canon printers will return the IEEE-1284 device ID over and over and over
* when they get a read request...
*/
usebc = strcasecmp(hostname, "Canon") != 0;
/*
* Open the USB port device...
@@ -234,7 +247,9 @@ print_device(const char *uri, /* I - Device URI */
do
{
FD_ZERO(&input);
FD_SET(fd, &input);
if (usebc)
FD_SET(fd, &input);
FD_ZERO(&output);
FD_SET(fd, &output);
}
+7 -3
Ver Arquivo
@@ -63,7 +63,7 @@
void list_devices(void);
int print_device(const char *uri, const char *hostname,
const char *resource, const char *options,
int fp, int copies);
int fp, int copies, int argc, char *argv[]);
/*
@@ -109,7 +109,9 @@ print_device(const char *uri, /* I - Device URI */
const char *resource, /* I - Resource/modelname */
const char *options, /* I - Device options/serial number */
int fp, /* I - File descriptor to print */
int copies) /* I - Copies to print */
int copies, /* I - Copies to print */
int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
/*
* Can't print, so just reference the arguments to eliminate compiler
@@ -124,6 +126,8 @@ print_device(const char *uri, /* I - Device URI */
(void)options;
(void)fp;
(void)copies;
(void)argc;
(void)argv;
return (CUPS_BACKEND_FAILED);
}
@@ -251,7 +255,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
* Finally, send the print file...
*/
status = print_device(uri, hostname, resource, options, fp, copies);
status = print_device(uri, hostname, resource, options, fp, copies, argc, argv);
/*
* Close the input file and return...
+44 -18
Ver Arquivo
@@ -49,6 +49,7 @@
* Local functions...
*/
static http_t *connect_server(const char *, http_t *);
static int show_jobs(const char *, http_t *, const char *,
const char *, const int, const int);
static void show_printer(const char *, http_t *, const char *);
@@ -76,35 +77,23 @@ main(int argc, /* I - Number of command-line arguments */
int num_dests; /* Number of destinations */
cups_dest_t *dests; /* Destinations */
cups_lang_t *language; /* Language */
#ifdef HAVE_SSL
http_encryption_t encryption; /* Encryption? */
#endif /* HAVE_SSL */
language = cupsLangDefault();
/*
* Connect to the scheduler...
*/
if ((http = httpConnectEncrypt(cupsServer(), ippPort(),
cupsEncryption())) == NULL)
{
_cupsLangPrintf(stderr, _("%s: Unable to contact server!\n"), argv[0]);
return (1);
}
/*
* Check for command-line options...
*/
http = NULL;
dest = NULL;
user = NULL;
id = 0;
interval = 0;
longstatus = 0;
all = 0;
num_dests = cupsGetDests(&dests);
language = cupsLangDefault();
num_dests = 0;
for (i = 1; i < argc; i ++)
if (argv[i][0] == '+')
@@ -115,10 +104,10 @@ main(int argc, /* I - Number of command-line arguments */
{
case 'E' : /* Encrypt */
#ifdef HAVE_SSL
encryption = HTTP_ENCRYPT_REQUIRED;
cupsSetEncryption(HTTP_ENCRYPT_REQUIRED);
if (http)
httpEncryption(http, encryption);
httpEncryption(http, HTTP_ENCRYPT_REQUIRED);
#else
_cupsLangPrintf(stderr,
_("%s: Sorry, no encryption support compiled in!\n"),
@@ -166,6 +155,11 @@ main(int argc, /* I - Number of command-line arguments */
if ((instance = strchr(dest, '/')) != NULL)
*instance++ = '\0';
http = connect_server(argv[0], http);
if (num_dests == 0)
num_dests = cupsGetDests2(http, &dests);
if (cupsGetDest(dest, instance, num_dests, dests) == NULL)
{
if (instance)
@@ -186,8 +180,11 @@ main(int argc, /* I - Number of command-line arguments */
break;
case 'h' : /* Connect to host */
if (http != NULL)
if (http)
{
httpClose(http);
http = NULL;
}
if (argv[i][2] != '\0')
cupsSetServer(argv[i] + 2);
@@ -225,8 +222,13 @@ main(int argc, /* I - Number of command-line arguments */
else
user = argv[i];
http = connect_server(argv[0], http);
if (dest == NULL && !all)
{
if (num_dests == 0)
num_dests = cupsGetDests2(http, &dests);
for (i = 0; i < num_dests; i ++)
if (dests[i].is_default)
dest = dests[i].name;
@@ -294,6 +296,30 @@ main(int argc, /* I - Number of command-line arguments */
}
/*
* 'connect_server()' - Connect to the server as necessary...
*/
static http_t * /* O - New HTTP connection */
connect_server(const char *command, /* I - Command name */
http_t *http) /* I - Current HTTP connection */
{
if (!http)
{
http = httpConnectEncrypt(cupsServer(), ippPort(),
cupsEncryption());
if (http == NULL)
{
_cupsLangPrintf(stderr, _("%s: Unable to connect to server\n"), command);
exit(1);
}
}
return (http);
}
/*
* 'show_jobs()' - Show jobs.
*/
+74 -40
Ver Arquivo
@@ -93,7 +93,8 @@ main(int argc, /* I - Number of command-line arguments */
if (!http)
{
perror("ERROR: Unable to connect to cupsd");
fprintf(stderr, "DEBUG: cupsServer()=\"%s\"\n", cupsServer());
fprintf(stderr, "DEBUG: cupsServer()=\"%s\"\n",
cupsServer() ? cupsServer() : "(null)");
fprintf(stderr, "DEBUG: ippPort()=%d\n", ippPort());
fprintf(stderr, "DEBUG: cupsEncryption()=%d\n", cupsEncryption());
exit(1);
@@ -132,12 +133,20 @@ main(int argc, /* I - Number of command-line arguments */
if (!strcmp(op, "redirect"))
{
const char *url; /* Redirection URL... */
char prefix[1024]; /* URL prefix */
if (getenv("HTTPS"))
snprintf(prefix, sizeof(prefix), "https://%s:%s",
getenv("SERVER_NAME"), getenv("SERVER_PORT"));
else
snprintf(prefix, sizeof(prefix), "http://%s:%s",
getenv("SERVER_NAME"), getenv("SERVER_PORT"));
if ((url = cgiGetVariable("URL")) != NULL)
printf("Location: %s\n\n", url);
printf("Location: %s%s\n\n", prefix, url);
else
puts("Location: /admin\n");
printf("Location: %s/admin\n\n", prefix);
}
else if (!strcmp(op, "start-printer"))
do_printer_op(http, IPP_RESUME_PRINTER, cgiText(_("Start Printer")));
@@ -473,7 +482,7 @@ do_am_class(http_t *http, /* I - HTTP connection */
char refresh[1024]; /* Refresh URL */
cgiFormEncode(uri, name, sizeof(uri));
snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=/classes/%s",
snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=/classes/%s",
uri);
cgiSetVariable("refresh_page", refresh);
@@ -498,9 +507,7 @@ do_am_printer(http_t *http, /* I - HTTP connection */
int modify) /* I - Modify the printer? */
{
int i; /* Looping var */
int element; /* Element number */
ipp_attribute_t *attr, /* Current attribute */
*last; /* Last attribute */
ipp_attribute_t *attr; /* Current attribute */
ipp_t *request, /* IPP request */
*response, /* IPP response */
*oldinfo; /* Old printer information */
@@ -528,8 +535,9 @@ do_am_printer(http_t *http, /* I - HTTP connection */
};
ptr = cgiGetVariable("DEVICE_URI");
fprintf(stderr, "DEBUG: do_am_printer: DEVICE_URI=\"%s\"\n",
cgiGetVariable("DEVICE_URI"));
ptr ? ptr : "(null)");
title = cgiText(modify ? _("Modify Printer") : _("Add Printer"));
@@ -847,27 +855,31 @@ do_am_printer(http_t *http, /* I - HTTP connection */
* Got the list of PPDs, see if the user has selected a make...
*/
cgiSetIPPVars(response, NULL, NULL, NULL, 0);
if (var == NULL)
if (cgiSetIPPVars(response, NULL, NULL, NULL, 0) == 0)
{
/*
* Let the user choose a make...
* No PPD files with this make, try again with all makes...
*/
for (element = 0, attr = response->attrs, last = NULL;
attr != NULL;
attr = attr->next)
if (attr->name && strcmp(attr->name, "ppd-make") == 0)
if (last == NULL ||
strcasecmp(last->values[0].string.text,
attr->values[0].string.text) != 0)
{
cgiSetArray("PPD_MAKE", element, attr->values[0].string.text);
element ++;
last = attr;
}
ippDelete(response);
request = ippNewRequest(CUPS_GET_PPDS);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, "ipp://localhost/printers/");
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes", NULL, "ppd-make");
if ((response = cupsDoRequest(http, request, "/")) != NULL)
cgiSetIPPVars(response, NULL, NULL, NULL, 0);
cgiStartHTML(title);
cgiCopyTemplateLang("choose-make.tmpl");
cgiEndHTML();
}
else if (!var)
{
cgiStartHTML(title);
cgiCopyTemplateLang("choose-make.tmpl");
cgiEndHTML();
@@ -923,7 +935,6 @@ do_am_printer(http_t *http, /* I - HTTP connection */
cgiEndHTML();
}
ippDelete(response);
}
else
@@ -1032,7 +1043,7 @@ do_am_printer(http_t *http, /* I - HTTP connection */
"5;/admin/?OP=redirect&URL=/printers/%s", uri);
else
snprintf(refresh, sizeof(refresh),
"5;/admin/?OP=set-printer-options&PRINTER_NAME=%s", uri);
"5;URL=/admin/?OP=set-printer-options&PRINTER_NAME=%s", uri);
cgiSetVariable("refresh_page", refresh);
@@ -1174,7 +1185,7 @@ do_config_printer(http_t *http) /* I - HTTP connection */
ppdLocalize(ppd);
cgiStartHTML("Set Printer Options");
cgiStartHTML(cgiText(_("Set Printer Options")));
cgiCopyTemplateLang("set-printer-options-header.tmpl");
if (ppdConflicts(ppd))
@@ -1443,7 +1454,7 @@ do_config_printer(http_t *http) /* I - HTTP connection */
if (!in || !out)
{
cgiSetVariable("ERROR", strerror(errno));
cgiStartHTML("Set Printer Options");
cgiStartHTML(cgiText(_("Set Printer Options")));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -1480,7 +1491,9 @@ do_config_printer(http_t *http) /* I - HTTP connection */
*keyptr = '\0';
if (!strcmp(keyword, "PageRegion"))
if (!strcmp(keyword, "PageRegion") ||
!strcmp(keyword, "PaperDimension") ||
!strcmp(keyword, "ImageableArea"))
var = cgiGetVariable("PageSize");
else
var = cgiGetVariable(keyword);
@@ -1552,7 +1565,7 @@ do_config_printer(http_t *http) /* I - HTTP connection */
cgiFormEncode(uri, printer, sizeof(uri));
snprintf(refresh, sizeof(refresh),
"5;/admin/?OP=redirect&URL=/printers/%s", uri);
"5;URL=/admin/?OP=redirect&URL=/printers/%s", uri);
cgiSetVariable("refresh_page", refresh);
cgiStartHTML(title);
@@ -1614,7 +1627,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
}
else
{
cgiSetVariable("refresh_page", "5;/admin/?OP=redirect");
cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect");
cgiStartHTML(cgiText(_("Change Settings")));
cgiCopyTemplateLang("restart.tmpl");
}
@@ -1708,7 +1721,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
}
else
{
cgiSetVariable("refresh_page", "5;/admin/?OP=redirect");
cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect");
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiCopyTemplateLang("restart.tmpl");
@@ -1806,7 +1819,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
* Show the current config file...
*/
cgiStartHTML("Edit Configuration File");
cgiStartHTML(cgiText(_("Edit Configuration File")));
printf("<!-- \"%s\" -->\n", filename);
@@ -1829,10 +1842,13 @@ do_delete_class(http_t *http) /* I - HTTP connection */
const char *pclass; /* Printer class name */
cgiStartHTML(cgiText(_("Delete Class")));
/*
* Get form variables...
*/
if (cgiGetVariable("CONFIRM") == NULL)
{
cgiStartHTML(cgiText(_("Delete Class")));
cgiCopyTemplateLang("class-confirm.tmpl");
cgiEndHTML();
return;
@@ -1843,6 +1859,7 @@ do_delete_class(http_t *http) /* I - HTTP connection */
"localhost", 0, "/classes/%s", pclass);
else
{
cgiStartHTML(cgiText(_("Delete Class")));
cgiSetVariable("ERROR", cgiText(_("Missing form variable!")));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -1869,6 +1886,12 @@ do_delete_class(http_t *http) /* I - HTTP connection */
ippDelete(cupsDoRequest(http, request, "/admin/"));
/*
* Show the results...
*/
cgiStartHTML(cgiText(_("Delete Class")));
if (cupsLastError() > IPP_OK_CONFLICT)
cgiShowIPPError(_("Unable to delete class:"));
else
@@ -1890,10 +1913,13 @@ do_delete_printer(http_t *http) /* I - HTTP connection */
const char *printer; /* Printer printer name */
cgiStartHTML(cgiText(_("Delete Printer")));
/*
* Get form variables...
*/
if (cgiGetVariable("CONFIRM") == NULL)
{
cgiStartHTML(cgiText(_("Delete Printer")));
cgiCopyTemplateLang("printer-confirm.tmpl");
cgiEndHTML();
return;
@@ -1904,6 +1930,7 @@ do_delete_printer(http_t *http) /* I - HTTP connection */
"localhost", 0, "/printers/%s", printer);
else
{
cgiStartHTML(cgiText(_("Delete Printer")));
cgiSetVariable("ERROR", cgiText(_("Missing form variable!")));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
@@ -1930,6 +1957,12 @@ do_delete_printer(http_t *http) /* I - HTTP connection */
ippDelete(cupsDoRequest(http, request, "/admin/"));
/*
* Show the results...
*/
cgiStartHTML(cgiText(_("Delete Printer")));
if (cupsLastError() > IPP_OK_CONFLICT)
cgiShowIPPError(_("Unable to delete printer:"));
else
@@ -2449,7 +2482,7 @@ do_printer_op(http_t *http, /* I - HTTP connection */
cgiRewriteURL(uri, url, sizeof(url), NULL);
cgiFormEncode(uri, url, sizeof(uri));
snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=%s", uri);
snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=%s", uri);
cgiSetVariable("refresh_page", refresh);
cgiStartHTML(title);
@@ -2624,11 +2657,11 @@ do_set_allowed_users(http_t *http) /* I - HTTP connection */
NULL, uri);
if (num_users == 0)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
ippAddString(request, IPP_TAG_PRINTER, IPP_TAG_NAME,
"requesting-user-name-allowed", NULL, "all");
else
{
attr = ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
attr = ippAddStrings(request, IPP_TAG_PRINTER, IPP_TAG_NAME,
type, num_users, NULL, NULL);
for (i = 0, ptr = (char *)users; *ptr; i ++)
@@ -2707,7 +2740,8 @@ do_set_allowed_users(http_t *http) /* I - HTTP connection */
cgiRewriteURL(uri, url, sizeof(url), NULL);
cgiFormEncode(uri, url, sizeof(uri));
snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=%s", uri);
snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=%s",
uri);
cgiSetVariable("refresh_page", refresh);
cgiStartHTML(cgiText(_("Set Allowed Users")));
@@ -2797,7 +2831,7 @@ do_set_sharing(http_t *http) /* I - HTTP connection */
cgiRewriteURL(uri, url, sizeof(url), NULL);
cgiFormEncode(uri, url, sizeof(uri));
snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=%s", uri);
snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=%s", uri);
cgiSetVariable("refresh_page", refresh);
cgiStartHTML(cgiText(_("Set Publishing")));
+6 -6
Ver Arquivo
@@ -95,8 +95,7 @@ main(int argc, /* I - Number of command-line arguments */
* See who is logged in...
*/
if ((user = getenv("REMOTE_USER")) == NULL)
user = "guest";
user = getenv("REMOTE_USER");
/*
* Connect to the HTTP server...
@@ -187,7 +186,7 @@ main(int argc, /* I - Number of command-line arguments */
void
show_all_classes(http_t *http, /* I - Connection to server */
const char *user) /* I - Username */
const char *user) /* I - Username */
{
int i; /* Looping var */
ipp_t *request, /* IPP request */
@@ -221,8 +220,9 @@ show_all_classes(http_t *http, /* I - Connection to server */
request = ippNewRequest(CUPS_GET_CLASSES);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, user);
if (user)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, user);
cgiGetAttributes(request, "classes.tmpl");
@@ -419,7 +419,7 @@ show_class(http_t *http, /* I - Connection to server */
*/
cgiFormEncode(uri, pclass, sizeof(uri));
snprintf(refresh, sizeof(refresh), "10;/classes/%s", uri);
snprintf(refresh, sizeof(refresh), "10;URL=/classes/%s", uri);
cgiSetVariable("refresh_page", refresh);
}
+2 -1
Ver Arquivo
@@ -187,7 +187,8 @@ main(int argc, /* I - Number of command-line arguments */
topic = cgiGetVariable("TOPIC");
si = helpSearchIndex(hi, query, topic, helpfile);
fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n", query, topic);
fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n",
query ? query : "(null)", topic ? topic : "(null)");
if (si)
{
+2 -1
Ver Arquivo
@@ -175,7 +175,8 @@ cgi_null_passwd(const char *prompt) /* I - Prompt string (unused) */
{
(void)prompt;
fprintf(stderr, "DEBUG: cgi_null_passwd(prompt=\"%s\") called!\n", prompt);
fprintf(stderr, "DEBUG: cgi_null_passwd(prompt=\"%s\") called!\n",
prompt ? prompt : "(null)");
return (NULL);
}
+8 -6
Ver Arquivo
@@ -482,7 +482,7 @@ cgiMoveJobs(http_t *http, /* I - Connection to server */
{
cgiRewriteURL(job_printer_uri, resource, sizeof(resource), NULL);
cgiFormEncode(uri, resource, sizeof(uri));
snprintf(refresh, sizeof(refresh), "2;%s", uri);
snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
cgiSetVariable("refresh_page", refresh);
}
@@ -598,7 +598,7 @@ cgiPrintTestPage(http_t *http, /* I - Connection to server */
*/
cgiFormEncode(uri, resource, sizeof(uri));
snprintf(refresh, sizeof(refresh), "2;%s", uri);
snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
cgiSetVariable("refresh_page", refresh);
}
@@ -774,7 +774,7 @@ cgiSetIPPObjectVars(
fprintf(stderr, "DEBUG2: cgiSetIPPObjectVars(obj=%p, prefix=\"%s\", "
"element=%d)\n",
obj, prefix, element);
obj, prefix ? prefix : "(null)", element);
/*
* Set common CGI template variables...
@@ -977,7 +977,9 @@ cgiSetIPPVars(ipp_t *response, /* I - Response data to be copied... */
fprintf(stderr, "DEBUG2: cgiSetIPPVars(response=%p, filter_name=\"%s\", "
"filter_value=\"%s\", prefix=\"%s\", parent_el=%d)\n",
response, filter_name, filter_value, prefix, parent_el);
response, filter_name ? filter_name : "(null)",
filter_value ? filter_value : "(null)",
prefix ? prefix : "(null)", parent_el);
/*
* Set common CGI template variables...
@@ -1035,9 +1037,9 @@ cgiSetIPPVars(ipp_t *response, /* I - Response data to be copied... */
attr = cgiSetIPPObjectVars(attr, prefix, element);
}
fprintf(stderr, "DEBUG2: Returing %d from cgiSetIPPVars()...\n", element + 1);
fprintf(stderr, "DEBUG2: Returing %d from cgiSetIPPVars()...\n", element);
return (element + 1);
return (element);
}
+8 -8
Ver Arquivo
@@ -98,8 +98,7 @@ main(int argc, /* I - Number of command-line arguments */
* See who is logged in...
*/
if ((user = getenv("REMOTE_USER")) == NULL)
user = "guest";
user = getenv("REMOTE_USER");
/*
* Connect to the HTTP server...
@@ -287,7 +286,7 @@ print_command(http_t *http, /* I - Connection to server */
*/
cgiFormEncode(uri, resource, sizeof(uri));
snprintf(refresh, sizeof(refresh), "2;%s", uri);
snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
cgiSetVariable("refresh_page", refresh);
}
@@ -331,7 +330,7 @@ show_all_printers(http_t *http, /* I - Connection to server */
fprintf(stderr, "DEBUG: show_all_printers(http=%p, user=\"%s\")\n",
http, user);
http, user ? user : "(null)");
/*
* Show the standard header...
@@ -357,8 +356,9 @@ show_all_printers(http_t *http, /* I - Connection to server */
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM,
"printer-type-mask", CUPS_PRINTER_CLASS);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, user);
if (user)
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, user);
cgiGetAttributes(request, "printers.tmpl");
@@ -543,7 +543,7 @@ show_printer(http_t *http, /* I - Connection to server */
fprintf(stderr, "DEBUG: show_printer(http=%p, printer=\"%s\")\n",
http, printer);
http, printer ? printer : "(null)");
/*
* Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
@@ -594,7 +594,7 @@ show_printer(http_t *http, /* I - Connection to server */
*/
cgiFormEncode(uri, printer, sizeof(uri));
snprintf(refresh, sizeof(refresh), "10;/printers/%s", uri);
snprintf(refresh, sizeof(refresh), "10;URL=/printers/%s", uri);
cgiSetVariable("refresh_page", refresh);
}
+37 -5
Ver Arquivo
@@ -44,6 +44,7 @@
static void cgi_copy(FILE *out, FILE *in, int element, char term,
int indent);
static void cgi_puts(const char *s, FILE *out);
static void cgi_puturi(const char *s, FILE *out);
/*
@@ -59,7 +60,7 @@ cgiCopyTemplateFile(FILE *out, /* I - Output file */
fprintf(stderr, "DEBUG: cgiCopyTemplateFile(out=%p, tmpl=\"%s\")\n", out,
tmpl);
tmpl ? tmpl : "(null)");
/*
* Open the template file...
@@ -68,7 +69,7 @@ cgiCopyTemplateFile(FILE *out, /* I - Output file */
if ((in = fopen(tmpl, "r")) == NULL)
{
fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n",
tmpl, strerror(errno));
tmpl ? tmpl : "(null)", strerror(errno));
return;
}
@@ -101,7 +102,8 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
FILE *in; /* Input file */
fprintf(stderr, "DEBUG: cgiCopyTemplateLang(tmpl=\"%s\")\n", tmpl);
fprintf(stderr, "DEBUG: cgiCopyTemplateLang(tmpl=\"%s\")\n",
tmpl ? tmpl : "(null)");
/*
* Convert the language to a locale name...
@@ -110,7 +112,7 @@ cgiCopyTemplateLang(const char *tmpl) /* I - Base filename */
if ((lang = getenv("LANG")) != NULL)
{
for (i = 0; lang[i] && i < 15; i ++)
if (isalnum(lang[i] & 255))
if (isalnum(lang[i] & 255) || lang[i] == '_')
locale[i] = tolower(lang[i]);
else if (lang[i] == '-')
locale[i] = '_';
@@ -235,6 +237,7 @@ cgi_copy(FILE *out, /* I - Output file */
char outval[1024], /* Formatted output string */
compare[1024]; /* Comparison string */
int result; /* Result of comparison */
int uriencode; /* Encode as URI */
fprintf(stderr, "DEBUG: %*sStarting at file position %ld...\n", indent, "",
@@ -253,9 +256,13 @@ cgi_copy(FILE *out, /* I - Output file */
* Get a variable name...
*/
uriencode = 0;
for (s = name; (ch = getc(in)) != EOF;)
if (strchr("}]<>=! \t\n", ch))
break;
else if (s == name && ch == '%')
uriencode = 1;
else if (s > name && ch == '?')
break;
else if (s < (name + sizeof(name) - 1))
@@ -399,7 +406,12 @@ cgi_copy(FILE *out, /* I - Output file */
*/
if (out)
cgi_puts(outptr, out);
{
if (uriencode)
cgi_puturi(outptr, out);
else
cgi_puts(outptr, out);
}
continue;
}
@@ -637,6 +649,26 @@ cgi_puts(const char *s, /* I - String to output */
}
/*
* 'cgi_puturi()' - Put a URI string to the output file, quoting as needed...
*/
static void
cgi_puturi(const char *s, /* I - String to output */
FILE *out) /* I - Output file */
{
while (*s)
{
if (strchr("%&+ <>#=", *s) || *s & 128)
fprintf(out, "%%%02X", *s & 255);
else
putc(*s, out);
s ++;
}
}
/*
* End of "$Id$".
*/
+8 -1
Ver Arquivo
@@ -239,6 +239,12 @@ cgiInitialize(void)
cupsSetPasswordCB(cgi_passwd);
/*
* Set the locale so that times, etc. are formatted properly...
*/
setlocale(LC_ALL, "");
#ifdef DEBUG
/*
* Disable output buffering to find bugs...
@@ -943,7 +949,8 @@ cgi_passwd(const char *prompt) /* I - Prompt (not used) */
{
(void)prompt;
fprintf(stderr, "DEBUG: cgi_passwd(prompt=\"%s\") called!\n", prompt);
fprintf(stderr, "DEBUG: cgi_passwd(prompt=\"%s\") called!\n",
prompt ? prompt : "(null)");
/*
* Send a 401 (unauthorized) status to the server, so it can notify
+1 -2
Ver Arquivo
@@ -74,8 +74,7 @@ install: all
if test -r $(SERVERROOT)/$$file ; then \
$(MV) $(SERVERROOT)/$$file $(SERVERROOT)/$$file.O ; \
fi ; \
$(INSTALL_CONFIG) $$file $(SERVERROOT) ; \
chgrp $(CUPS_GROUP) $(SERVERROOT)/$$file || true; \
$(INSTALL_DATA) $$file $(SERVERROOT) ; \
done
-if test x$(PAMDIR) != x; then \
$(INSTALL_DIR) -m 755 $(BUILDROOT)$(PAMDIR); \
+1
Ver Arquivo
@@ -33,6 +33,7 @@ DefaultAuthType Basic
# Restrict access to the admin pages...
<Location /admin>
@ENCRYPTION_REQUIRED@
Order allow,deny
Allow localhost
</Location>
+4 -5
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.convs 4559 2005-08-04 18:40:13Z mike $"
# "$Id: mime.convs 5402 2006-04-14 19:21:03Z mike $"
#
# MIME converts file for the Common UNIX Printing System (CUPS).
#
@@ -107,13 +107,12 @@ image/x-sun-raster application/vnd.cups-raster 100 imagetoraster
#
# Raw filter...
#
# Uncomment the following filter and the application/octet-stream type
# in mime.types to allow printing of arbitrary files without the -oraw
# option.
# Uncomment the following filter to allow printing of arbitrary files
# without the -oraw option.
#
#application/octet-stream application/vnd.cups-raw 0 -
#
# End of "$Id: mime.convs 4559 2005-08-04 18:40:13Z mike $".
# End of "$Id: mime.convs 5402 2006-04-14 19:21:03Z mike $".
#
+9 -7
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: mime.types 4590 2005-08-24 19:25:49Z mike $"
# "$Id: mime.types 5402 2006-04-14 19:21:03Z mike $"
#
# MIME types file for the Common UNIX Printing System (CUPS).
#
@@ -77,7 +77,9 @@ application/postscript ai eps ps string(0,%!) string(0,<04>%!) \
(contains(0,1024,"LANGUAGE=POSTSCRIPT") \
contains(0,1024,"LANGUAGE = Postscript") \
contains(0,1024,"LANGUAGE = PostScript") \
contains(0,1024,"LANGUAGE = POSTSCRIPT"))
contains(0,1024,"LANGUAGE = POSTSCRIPT") \
(contains(0,1024,<0a>%!) + \
!contains(0,1024,"ENTER LANGUAGE")))
application/vnd.hp-HPGL hpgl string(0,<1B>&)\
string(0,<1B>E<1B>%0B) \
string(0,<1B>%-1B) string(0,<201B>)\
@@ -145,7 +147,9 @@ text/css css
application/vnd.cups-command string(0,'#CUPS-COMMAND')
application/vnd.cups-form string(0,"<CUPSFORM>")
application/vnd.cups-pdf
application/vnd.cups-postscript
application/vnd.cups-ppd ppd string(0,"*PPD-Adobe:")
application/vnd.cups-raster string(0,"RaSt") string(0,"tSaR")
application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
string(0,<1B>@) \
@@ -157,13 +161,11 @@ application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
#
# Raw print file support...
#
# Uncomment the following type and the application/octet-stream
# filter line in mime.convs to allow raw file printing without the
# -oraw option.
# Comment the following type to prevent raw file printing.
#
#application/octet-stream
application/octet-stream
#
# End of "$Id: mime.types 4590 2005-08-24 19:25:49Z mike $".
# End of "$Id: mime.types 5402 2006-04-14 19:21:03Z mike $".
#
+6 -5
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-common.m4 5229 2006-03-05 16:48:12Z mike $"
dnl "$Id: cups-common.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -63,7 +63,7 @@ AC_PATH_PROG(LD,ld)
AC_PATH_PROG(LN,ln)
AC_PATH_PROG(MV,mv)
AC_PATH_PROG(RM,rm)
AC_PATH_PROG(RM,rmdir)
AC_PATH_PROG(RMDIR,rmdir)
AC_PATH_PROG(SED,sed)
AC_PATH_PROG(STRIP,strip)
@@ -79,9 +79,10 @@ fi
dnl Static library option...
INSTALLSTATIC=""
AC_ARG_ENABLE(install_static, [ --enable-static install static libraries, default=no])
AC_ARG_ENABLE(static, [ --enable-static install static libraries, default=no])
if test x$enable_install_static = xyes; then
if test x$enable_static = xyes; then
echo Installing static libraries...
INSTALLSTATIC="installstatic"
fi
@@ -264,5 +265,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl
dnl End of "$Id: cups-common.m4 5229 2006-03-05 16:48:12Z mike $".
dnl End of "$Id: cups-common.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+242 -77
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-compiler.m4 5274 2006-03-10 20:57:09Z mike $"
dnl "$Id: cups-compiler.m4 5566 2006-05-22 01:10:11Z mike $"
dnl
dnl Compiler stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -24,10 +24,13 @@ dnl
dnl Clear the debugging and non-shared library options unless the user asks
dnl for them...
ARCHFLAGS=""
OPTIM=""
AC_SUBST(ARCHFLAGS)
AC_SUBST(OPTIM)
AC_ARG_WITH(optim, [ --with-optim="flags" set optimization flags ])
AC_ARG_WITH(archflags, [ --with-arch="flags" set default architecture flags ])
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging, default=no],
[if test x$enable_debug = xyes; then
@@ -36,15 +39,16 @@ AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging, default=no],
dnl Setup support for separate 32/64-bit library generation...
AC_ARG_ENABLE(32bit, [ --enable-32bit generate 32-bit libraries on 32/64-bit systems, default=no])
AC_ARG_WITH(arch32flags, [ --with-arch32="flags" specifies 32-bit architecture flags])
C32FLAGS=""
ARCH32FLAGS=""
INSTALL32=""
LIB32CUPS=""
LIB32CUPSIMAGE=""
LIB32DIR=""
UNINSTALL32=""
AC_SUBST(C32FLAGS)
AC_SUBST(ARCH32FLAGS)
AC_SUBST(INSTALL32)
AC_SUBST(LIB32CUPS)
AC_SUBST(LIB32CUPSIMAGE)
@@ -52,15 +56,16 @@ AC_SUBST(LIB32DIR)
AC_SUBST(UNINSTALL32)
AC_ARG_ENABLE(64bit, [ --enable-64bit generate 64-bit libraries on 32/64-bit systems, default=no])
AC_ARG_WITH(arch64flags, [ --with-arch64="flags" specifies 64-bit architecture flags])
C64FLAGS=""
ARCH64FLAGS=""
INSTALL64=""
LIB64CUPS=""
LIB64CUPSIMAGE=""
LIB64DIR=""
UNINSTALL64=""
AC_SUBST(C64FLAGS)
AC_SUBST(ARCH64FLAGS)
AC_SUBST(INSTALL64)
AC_SUBST(LIB64CUPS)
AC_SUBST(LIB64CUPSIMAGE)
@@ -68,12 +73,15 @@ AC_SUBST(LIB64DIR)
AC_SUBST(UNINSTALL64)
dnl Position-Independent Executable support on Linux and *BSD...
AC_ARG_ENABLE(pie, [ --enable-pie use GCC -fpie option, default=no])
AC_ARG_ENABLE(pie, [ --enable-pie use GCC -fPIE option, default=no])
dnl Update compiler options...
CXXLIBS=""
AC_SUBST(CXXLIBS)
PIEFLAGS=""
AC_SUBST(PIEFLAGS)
if test -n "$GCC"; then
if test -z "$OPTIM"; then
if test "x$with_optim" = x; then
@@ -89,20 +97,15 @@ if test -n "$GCC"; then
fi
case $uname in
Darwin*)
if test "x$with_optim" = x; then
if test "x`uname -m`" = xi386; then
# Build universal binaries for OSX on Intel...
OPTIM="-arch i386 -arch ppc $OPTIM"
DSOFLAGS="-arch i386 -arch ppc $DSOFLAGS"
fi
Linux*)
if test x$enable_pie = xyes; then
PIEFLAGS="-pie -fPIE"
fi
;;
Linux*)
*)
if test x$enable_pie = xyes; then
OPTIM="$OPTIM -fpie"
LDFLAGS="$LDFLAGS -pie"
echo "Sorry, --enable-pie is not supported on this OS!"
fi
;;
esac
@@ -115,67 +118,170 @@ if test -n "$GCC"; then
fi
case "$uname" in
Darwin*)
if test -z "$with_archflags"; then
if test "x`uname -m`" = xi386; then
# Build universal binaries for OSX on Intel...
ARCHFLAGS="-arch i386 -arch ppc"
fi
else
ARCHFLAGS="$with_archflags"
fi
;;
IRIX)
if test "x$enable_32bit" = xyes; then
# Compiling on an IRIX system, build 32-bit
# libraries...
C32FLAGS="-n32 -mips3"
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="-n32 -mips3"
else
ARCH32FLAGS="$with_arch32flags"
fi
INSTALL32="install32bit"
LIB32CUPS="libcups.32.so.2"
LIB32CUPSIMAGE="libcupsimage.32.so.2"
LIB32CUPS="32bit/libcups.so.2"
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
LIB32DIR="$prefix/lib32"
UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-64 -mips4"
else
ARCHFLAGS="$with_arch64flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
fi
if test "x$enable_64bit" = xyes; then
# Compiling on an IRIX system, build 64-bit
# libraries...
C64FLAGS="-64 -mips4"
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="-64 -mips4"
else
ARCH64FLAGS="$with_arch64flags"
fi
INSTALL64="install64bit"
LIB64CUPS="libcups.64.so.2"
LIB64CUPSIMAGE="libcupsimage.64.so.2"
LIB64CUPS="64bit/libcups.so.2"
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
LIB64DIR="$prefix/lib64"
UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-n32 -mips3"
else
ARCHFLAGS="$with_arch32flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
fi
;;
Linux*)
if test "x$enable_32bit" = xyes; then
# Compiling on an 64-bit x86 system, build 32-bit
# libraries...
C32FLAGS="-m32"
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="-m32"
else
ARCH32FLAGS="$with_arch32flags"
fi
INSTALL32="install32bit"
LIB32CUPS="libcups.32.so.2"
LIB32CUPSIMAGE="libcupsimage.32.so.2"
LIB32CUPS="32bit/libcups.so.2"
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
LIB32DIR="$exec_prefix/lib"
if test -d /usr/lib32; then
LIB32DIR="${LIB32DIR}32"
fi
UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-m64"
else
ARCHFLAGS="$with_arch64flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="-m64"
else
ARCH64FLAGS="$with_arch64flags"
fi
INSTALL64="install64bit"
LIB64CUPS="64bit/libcups.so.2"
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
LIB64DIR="$exec_prefix/lib"
if test -d /usr/lib64; then
LIB64DIR="${LIB64DIR}64"
fi
UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-m32"
else
ARCHFLAGS="$with_arch32flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
fi
;;
SunOS*)
if test "x$enable_32bit" = xyes; then
# Compiling on a Solaris system, build 32-bit
# libraries...
C32FLAGS="-m32"
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="-m32"
else
ARCH32FLAGS="$with_arch32flags"
fi
INSTALL32="install32bit"
LIB32CUPS="libcups.32.so.2"
LIB32CUPSIMAGE="libcupsimage.32.so.2"
LIB32CUPS="32bit/libcups.so.2"
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
LIB32DIR="$exec_prefix/lib/32"
UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-m64"
else
ARCHFLAGS="$with_arch64flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
fi
if test "x$enable_64bit" = xyes; then
# Compiling on a Solaris system, build 64-bit
# libraries...
C64FLAGS="-m64"
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="-m64"
else
ARCH64FLAGS="$with_arch64flags"
fi
INSTALL64="install64bit"
LIB64CUPS="libcups.64.so.2"
LIB64CUPSIMAGE="libcupsimage.64.so.2"
LIB64CUPS="64bit/libcups.so.2"
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
LIB64DIR="$exec_prefix/lib/64"
UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-m32"
else
ARCHFLAGS="$with_arch32flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
fi
;;
esac
@@ -200,9 +306,15 @@ else
fi
CFLAGS="-Ae $CFLAGS"
# Warning 336 is "empty translation unit"
# Warning 829 is passing constant string as char *
CXXFLAGS="+W336,829 $CXXFLAGS"
if test "x$with_optim" = x; then
OPTIM="+DAportable $OPTIM"
if test -z "$with_archflags"; then
# Build portable binaries for all HP systems...
ARCHFLAGS="+DAportable"
else
ARCHFLAGS="$with_archflags"
fi
if test $PICFLAG = 1; then
@@ -223,25 +335,51 @@ else
fi
if test "x$enable_32bit" = xyes; then
# Compiling on an IRIX system, build 32-bit
# libraries...
C32FLAGS="-n32 -mips3"
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="-n32 -mips3"
else
ARCH32FLAGS="$with_arch32flags"
fi
INSTALL32="install32bit"
LIB32CUPS="libcups.32.so.2"
LIB32CUPSIMAGE="libcupsimage.32.so.2"
LIB32DIR="$exec_prefix/lib32"
LIB32CUPS="32bit/libcups.so.2"
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
LIB32DIR="$prefix/lib32"
UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-64 -mips4"
else
ARCHFLAGS="$with_arch64flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
fi
if test "x$enable_64bit" = xyes; then
# Compiling on an IRIX system, build 64-bit
# libraries...
C64FLAGS="-64 -mips4"
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="-64 -mips4"
else
ARCH64FLAGS="$with_arch64flags"
fi
INSTALL64="install64bit"
LIB64CUPS="libcups.64.so.2"
LIB64CUPSIMAGE="libcupsimage.64.so.2"
LIB64DIR="$exec_prefix/lib64"
LIB64CUPS="64bit/libcups.so.2"
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
LIB64DIR="$prefix/lib64"
UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-n32 -mips3"
else
ARCHFLAGS="$with_arch32flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
fi
;;
SunOS*)
@@ -254,36 +392,63 @@ else
fi
fi
if test "x$with_optim" = x; then
# Specify "generic" SPARC output and suppress
# all of Sun's questionable warning messages...
OPTIM="-w $OPTIM -xarch=generic"
fi
if test $PICFLAG = 1; then
OPTIM="-KPIC $OPTIM"
fi
if test "x$enable_32bit" = xyes; then
# Compiling on a Solaris system, build 32-bit
# libraries...
C32FLAGS="-xarch=v8"
# Compiling on a Solaris system, build 64-bit
# binaries with separate 32-bit libraries...
ARCH32FLAGS="-xarch=generic"
INSTALL32="install32bit"
LIB32CUPS="libcups.32.so.2"
LIB32CUPSIMAGE="libcupsimage.32.so.2"
LIB32CUPS="32bit/libcups.so.2"
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
LIB32DIR="$exec_prefix/lib/32"
UNINSTALL32="uninstall32bit"
fi
if test "x$enable_64bit" = xyes; then
# Compiling on a Solaris system, build 64-bit
# libraries...
C64FLAGS="-xarch=v9 -xcode=pic32"
INSTALL64="install64bit"
LIB64CUPS="libcups.64.so.2"
LIB64CUPSIMAGE="libcupsimage.64.so.2"
LIB64DIR="$exec_prefix/lib/64"
UNINSTALL64="uninstall64bit"
if test "x$with_optim" = x; then
# Suppress all of Sun's questionable
# warning messages, and default to
# 64-bit compiles of everything else...
OPTIM="-w $OPTIM"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-xarch=generic64"
else
ARCHFLAGS="$with_arch64flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
else
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries...
ARCH64FLAGS="-xarch=generic64"
INSTALL64="install64bit"
LIB64CUPS="64bit/libcups.so.2"
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
LIB64DIR="$exec_prefix/lib/64"
UNINSTALL64="uninstall64bit"
fi
if test "x$with_optim" = x; then
# Suppress all of Sun's questionable
# warning messages, and default to
# 32-bit compiles of everything else...
OPTIM="-w $OPTIM"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-xarch=generic"
else
ARCHFLAGS="$with_arch32flags"
fi
else
ARCHFLAGS="$with_archflags"
fi
fi
;;
UNIX_SVR*)
@@ -323,5 +488,5 @@ if test $uname = HP-UX; then
fi
dnl
dnl End of "$Id: cups-compiler.m4 5274 2006-03-10 20:57:09Z mike $".
dnl End of "$Id: cups-compiler.m4 5566 2006-05-22 01:10:11Z mike $".
dnl
+38 -13
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id$"
dnl "$Id: cups-defaults.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl Default cupsd configuration settings for the Common UNIX Printing System
dnl (CUPS).
@@ -23,6 +23,12 @@ dnl EMail: cups-info@cups.org
dnl WWW: http://www.cups.org
dnl
dnl Default langugages...
AC_ARG_WITH(languages, [ --with-languages set installed languages, default="es ja" ],
LANGUAGES="$withval",
LANGUAGES="es ja pl sv")
AC_SUBST(LANGUAGES)
dnl Default ConfigFilePerm
AC_ARG_WITH(config_perm, [ --with-config-file-perm set default ConfigFilePerm value, default=0640],
CUPS_CONFIG_FILE_PERM="$withval",
@@ -105,13 +111,21 @@ AC_SUBST(CUPS_IMPLICIT_CLASSES)
dnl Default UseNetworkDefault
AC_ARG_ENABLE(network_default, [ --enable-use-network-default
enable UseNetworkDefault by default, default=yes])
if test "x$enable_network_default" = xno; then
enable UseNetworkDefault by default, default=auto])
if test "x$enable_network_default" != xno; then
AC_MSG_CHECKING(whether to use network default printers)
if test "x$enable_network_default" = xyes -o $uname != Darwin; then
CUPS_USE_NETWORK_DEFAULT="Yes"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USE_NETWORK_DEFAULT, 1)
AC_MSG_RESULT(yes)
else
CUPS_USE_NETWORK_DEFAULT="No"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USE_NETWORK_DEFAULT, 0)
AC_MSG_RESULT(no)
fi
else
CUPS_USE_NETWORK_DEFAULT="No"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USE_NETWORK_DEFAULT, 0)
else
CUPS_USE_NETWORK_DEFAULT="Yes"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USE_NETWORK_DEFAULT, 1)
fi
AC_SUBST(CUPS_USE_NETWORK_DEFAULT)
@@ -142,12 +156,7 @@ AC_ARG_WITH(cups-group, [ --with-cups-group set default group for CUPS],
CUPS_GROUP="$withval",
AC_MSG_CHECKING(for default print group)
if test -f /etc/group; then
if test x$uname = xDarwin; then
GROUP_LIST="nobody"
else
GROUP_LIST="lp nobody"
fi
GROUP_LIST="lp nobody"
CUPS_GROUP=""
for group in $GROUP_LIST; do
if test "`grep \^${group}: /etc/group`" != ""; then
@@ -209,7 +218,23 @@ AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USER, "$CUPS_USER")
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GROUP, "$CUPS_GROUP")
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SYSTEM_GROUPS, "$CUPS_SYSTEM_GROUPS")
dnl Default printcap file...
AC_ARG_WITH(printcap, [ --with-printcap set default printcap file],
default_printcap="$withval",
default_printcap="/etc/printcap")
if test x$enable_printcap != xno -a x$default_printcap != xno; then
if test "x$default_printcap" = "x/etc/printcap" -a "$uname" = "Darwin" -a $uversion -ge 90; then
CUPS_DEFAULT_PRINTCAP=""
else
CUPS_DEFAULT_PRINTCAP="$default_printcap"
fi
else
CUPS_DEFAULT_PRINTCAP=""
fi
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
dnl
dnl End of "$Id$".
dnl End of "$Id: cups-defaults.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+18 -5
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-directories.m4 5269 2006-03-10 03:33:00Z mike $"
dnl "$Id: cups-directories.m4 5547 2006-05-19 12:44:29Z mike $"
dnl
dnl Directory stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -130,9 +130,11 @@ if test x$rcdir = x; then
Darwin*)
# Darwin and MacOS X...
INITDIR=""
AC_CHECK_PROG(INITDDIR, launchd,
"/System/Library/LaunchDaemons",
"/System/Library/StartupItems/PrintingServices")
if test -x /sbin/launchd; then
INITDDIR="/System/Library/LaunchDaemons"
else
INITDDIR="/System/Library/StartupItems/PrintingServices"
fi
;;
Linux | GNU)
@@ -178,6 +180,17 @@ fi
AC_SUBST(INITDIR)
AC_SUBST(INITDDIR)
dnl Xinetd support...
XINETD=""
for dir in /private/etc/xinetd.d /etc/xinetd.d /usr/local/etc/xinetd.d; do
if test -d $dir; then
XINETD="$dir"
break
fi
done
AC_SUBST(XINETD)
dnl Setup default locations...
# Cache data...
AC_ARG_WITH(cachedir, [ --with-cachedir set path for cache files],cachedir="$withval",cachedir="")
@@ -289,5 +302,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups")
AC_SUBST(CUPS_STATEDIR)
dnl
dnl End of "$Id: cups-directories.m4 5269 2006-03-10 03:33:00Z mike $".
dnl End of "$Id: cups-directories.m4 5547 2006-05-19 12:44:29Z mike $".
dnl
+21 -5
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-image.m4 4644 2005-09-15 18:43:06Z mike $"
dnl "$Id: cups-image.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl Image library stuff for the Common UNIX Printing System (CUPS).
dnl Image library/filter stuff for the Common UNIX Printing System (CUPS).
dnl
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Easy Software Products and are protected by Federal
@@ -22,6 +22,22 @@ dnl EMail: cups-info@cups.org
dnl WWW: http://www.cups.org
dnl
dnl See if we want the image filters included at all...
AC_ARG_ENABLE(image, [ --enable-image turn on image filters, default=auto])
IMGFILTERS=""
if test "x$enable_image" != xno; then
AC_MSG_CHECKING(whether to build image filters)
if test "x$enable_image" = xyes -o $uname != Darwin; then
IMGFILTERS="imagetops imagetoraster"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
AC_SUBST(IMGFILTERS)
dnl Save the current libraries since we don't want the image libraries
dnl included with every program...
SAVELIBS="$LIBS"
@@ -62,7 +78,7 @@ AC_CHECK_LIB(m, pow)
if test x$enable_png != xno; then
AC_CHECK_HEADER(png.h,
AC_CHECK_LIB(png, png_set_tRNS_to_alpha,
AC_CHECK_LIB(png, png_create_read_struct,
AC_DEFINE(HAVE_LIBPNG)
LIBPNG="-lpng -lm"))
else
@@ -94,5 +110,5 @@ AC_SUBST(EXPORT_LIBZ)
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(HAVE_STDLIB_H))
dnl
dnl End of "$Id: cups-image.m4 4644 2005-09-15 18:43:06Z mike $".
dnl End of "$Id: cups-image.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id$"
dnl "$Id: cups-launchd.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl launchd stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -49,5 +49,5 @@ AC_SUBST(DEFAULT_LAUNCHD_CONF)
AC_SUBST(LAUNCHDLIBS)
dnl
dnl End of "$Id$".
dnl End of "$Id: cups-launchd.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+3 -3
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id$"
dnl "$Id: cups-ldap.m4 5564 2006-05-22 00:59:11Z mike $"
dnl
dnl LDAP configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -36,7 +36,7 @@ LIBLDAP=""
if test x$enable_ldap != xno; then
AC_CHECK_HEADER(ldap.h,
AC_CHECK_LIB(ldap, ldap_value_free,
AC_CHECK_LIB(ldap, ldap_initialize,
AC_DEFINE(HAVE_LDAP)
AC_DEFINE(HAVE_OPENLDAP)
LIBLDAP="-lldap"))
@@ -46,5 +46,5 @@ AC_SUBST(LIBLDAP)
dnl
dnl End of "$Id$".
dnl End of "$Id: cups-ldap.m4 5564 2006-05-22 00:59:11Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-libtool.m4 4494 2005-02-18 02:18:11Z mike $"
dnl "$Id: cups-libtool.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl Libtool stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -45,5 +45,5 @@ if test x$LIBTOOL != x; then
fi
dnl
dnl End of "$Id: cups-libtool.m4 4494 2005-02-18 02:18:11Z mike $".
dnl End of "$Id: cups-libtool.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-manpages.m4 5099 2006-02-13 02:46:10Z mike $"
dnl "$Id: cups-manpages.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl Manpage stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -103,5 +103,5 @@ AC_SUBST(MAN8EXT)
AC_SUBST(MAN8DIR)
dnl
dnl End of "$Id: cups-manpages.m4 5099 2006-02-13 02:46:10Z mike $".
dnl End of "$Id: cups-manpages.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-network.m4 4873 2005-12-07 01:46:54Z mike $"
dnl "$Id: cups-network.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl Networking stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -85,5 +85,5 @@ AC_SUBST(CUPS_DEFAULT_DOMAINSOCKET)
AC_SUBST(CUPS_LISTEN_DOMAINSOCKET)
dnl
dnl End of "$Id: cups-network.m4 4873 2005-12-07 01:46:54Z mike $".
dnl End of "$Id: cups-network.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-opsys.m4 5075 2006-02-05 01:00:29Z mike $"
dnl "$Id: cups-opsys.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl Operating system stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -39,5 +39,5 @@ case "$uname" in
esac
dnl
dnl "$Id: cups-opsys.m4 5075 2006-02-05 01:00:29Z mike $"
dnl "$Id: cups-opsys.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-pam.m4 4913 2006-01-11 01:42:04Z mike $"
dnl "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl PAM stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -94,5 +94,5 @@ AC_SUBST(PAMLIBS)
AC_SUBST(PAMMOD)
dnl
dnl End of "$Id: cups-pam.m4 4913 2006-01-11 01:42:04Z mike $".
dnl End of "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+37
Ver Arquivo
@@ -0,0 +1,37 @@
dnl
dnl "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl PAP (AppleTalk) stuff for the Common UNIX Printing System (CUPS).
dnl
dnl Copyright 2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Easy Software Products and are protected by Federal
dnl copyright law. Distribution and use rights are outlined in the file
dnl "LICENSE.txt" which should have been included with this file. If this
dnl file is missing or damaged please contact Easy Software Products
dnl at:
dnl
dnl Attn: CUPS Licensing Information
dnl Easy Software Products
dnl 44141 Airport View Drive, Suite 204
dnl Hollywood, Maryland 20636 USA
dnl
dnl Voice: (301) 373-9600
dnl EMail: cups-info@cups.org
dnl WWW: http://www.cups.org
dnl
# Currently the PAP backend is only supported on MacOS X with the AppleTalk
# SDK installed...
PAP=""
if test $uname = Darwin; then
PAP="pap"
AC_CHECK_HEADER(AppleTalk/at_proto.h)
fi
AC_SUBST(PAP)
dnl
dnl End of "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+43
Ver Arquivo
@@ -0,0 +1,43 @@
dnl
dnl "$Id: cups-pdf.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl PDF filter configuration stuff for the Common UNIX Printing System (CUPS).
dnl
dnl Copyright 2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Easy Software Products and are protected by Federal
dnl copyright law. Distribution and use rights are outlined in the file
dnl "LICENSE.txt" which should have been included with this file. If this
dnl file is missing or damaged please contact Easy Software Products
dnl at:
dnl
dnl Attn: CUPS Licensing Information
dnl Easy Software Products
dnl 44141 Airport View Drive, Suite 204
dnl Hollywood, Maryland 20636 USA
dnl
dnl Voice: (301) 373-9600
dnl EMail: cups-info@cups.org
dnl WWW: http://www.cups.org
dnl
AC_ARG_ENABLE(pdftops, [ --enable-pdftops build pdftops filter, default=auto ])
PDFTOPS=""
if test "x$enable_pdftops" != xno; then
AC_MSG_CHECKING(whether to build pdftops filter)
if test "x$enable_pdftops" = xyes -o $uname != Darwin; then
PDFTOPS="pdftops"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
AC_SUBST(PDFTOPS)
dnl
dnl End of "$Id: cups-pdf.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-scripting.m4 5176 2006-02-25 18:14:10Z mike $"
dnl "$Id: cups-scripting.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl Scripting configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -100,5 +100,5 @@ if test "x$CUPS_PYTHON" != x; then
fi
dnl
dnl End of "$Id: cups-scripting.m4 5176 2006-02-25 18:14:10Z mike $".
dnl End of "$Id: cups-scripting.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+53 -32
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-sharedlibs.m4 5112 2006-02-16 04:41:59Z mike $"
dnl "$Id: cups-sharedlibs.m4 5568 2006-05-22 15:34:01Z mike $"
dnl
dnl Shared library support for the Common UNIX Printing System (CUPS).
dnl
@@ -33,31 +33,31 @@ if test x$enable_shared != xno; then
LIBCUPS="libcups.so.2"
LIBCUPSIMAGE="libcupsimage.so.2"
DSO="\$(CC)"
DSOFLAGS="$DSOFLAGS -Wl,-h,\$@ -G \$(OPTIM)"
DSOFLAGS="$DSOFLAGS -Wl,-h,\`basename \$@\` -G \$(OPTIM)"
;;
HP-UX*)
LIBCUPS="libcups.sl.2"
LIBCUPSIMAGE="libcupsimage.sl.2"
DSO="\$(LD)"
DSOFLAGS="$DSOFLAGS -b -z +h \$@"
DSOFLAGS="$DSOFLAGS -b -z +h \`basename \$@\`"
;;
IRIX)
LIBCUPS="libcups.so.2"
LIBCUPSIMAGE="libcupsimage.so.2"
DSO="\$(CC)"
DSOFLAGS="$DSOFLAGS -Wl,-rpath,\$(libdir),-set_version,sgi2.6,-soname,\$@ -shared \$(OPTIM)"
DSOFLAGS="$DSOFLAGS -set_version,sgi2.6,-soname,\`basename \$@\` -shared \$(OPTIM)"
;;
OSF1* | Linux | GNU | *BSD*)
LIBCUPS="libcups.so.2"
LIBCUPSIMAGE="libcupsimage.so.2"
DSO="\$(CC)"
DSOFLAGS="$DSOFLAGS -Wl,-soname,\$@ -shared \$(OPTIM)"
DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
;;
Darwin*)
LIBCUPS="libcups.2.dylib"
LIBCUPSIMAGE="libcupsimage.2.dylib"
DSO="\$(CC)"
DSOFLAGS="$DSOFLAGS \$(RC_CFLAGS) -dynamiclib -single_module -lc"
DSOFLAGS="$DSOFLAGS -dynamiclib -single_module -lc"
;;
AIX*)
LIBCUPS="libcups_s.a"
@@ -71,7 +71,7 @@ if test x$enable_shared != xno; then
LIBCUPS="libcups.so.2"
LIBCUPSIMAGE="libcupsimage.so.2"
DSO="\$(CC)"
DSOFLAGS="$DSOFLAGS -Wl,-soname,\$@ -shared \$(OPTIM)"
DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
;;
esac
else
@@ -81,8 +81,15 @@ else
DSO=":"
fi
# 32-bit and 64-bit libraries need variations of the standard
# DSOFLAGS...
DSO32FLAGS="$DSOFLAGS"
DSO64FLAGS="$DSOFLAGS"
AC_SUBST(DSO)
AC_SUBST(DSOFLAGS)
AC_SUBST(DSO32FLAGS)
AC_SUBST(DSO64FLAGS)
AC_SUBST(LIBCUPS)
AC_SUBST(LIBCUPSIMAGE)
@@ -113,34 +120,48 @@ if test "$DSO" != ":"; then
DSOLIBS="\$(LIBPNG) \$(LIBTIFF) \$(LIBJPEG) \$(LIBZ)"
IMGLIBS=""
# The *BSD, HP-UX, and Solaris run-time linkers need help when
# deciding where to find a DSO. Add linker options to tell them
# where to find the DSO (usually in /usr/lib... duh!)
# Tell the run-time linkers where to find a DSO. Some platforms
# need this option, even when the library is installed in a
# standard location...
case $uname in
HP-UX*)
# HP-UX
DSOFLAGS="+s +b $libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -Wl,+s,+b,$libdir"
EXPORT_LDFLAGS="-Wl,+s,+b,$libdir"
;;
# HP-UX needs the path, even for /usr/lib...
DSOFLAGS="+s +b \$(libdir) $DSOFLAGS"
DSO32FLAGS="+s +b \$(LIB32DIR) $DSO32FLAGS"
DSO64FLAGS="+s +b \$(LIB64DIR) $DSO64FLAGS"
LDFLAGS="$LDFLAGS -Wl,+s,+b,\$(libdir)"
EXPORT_LDFLAGS="-Wl,+s,+b,\$(libdir)"
;;
SunOS*)
# Solaris
DSOFLAGS="-R$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -R$libdir"
EXPORT_LDFLAGS="-R$libdir"
;;
# Solaris...
if test $exec_prefix != /usr; then
DSOFLAGS="-R\$(libdir) $DSOFLAGS"
DSO32FLAGS="-R\$(LIB32DIR) $DSO32FLAGS"
DSO64FLAGS="-R\$(LIB64DIR) $DSO64FLAGS"
LDFLAGS="$LDFLAGS -R\$(libdir)"
EXPORT_LDFLAGS="-R\$(libdir)"
fi
;;
*BSD*)
# *BSD
DSOFLAGS="-Wl,-R$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -Wl,-R$libdir"
EXPORT_LDFLAGS="-Wl,-R$libdir"
;;
Linux | GNU)
# Linux and HURD
DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS"
LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir"
EXPORT_LDFLAGS="-Wl,-rpath,$libdir"
;;
# *BSD...
if test $exec_prefix != /usr; then
DSOFLAGS="-Wl,-R\$(libdir) $DSOFLAGS"
DSO32FLAGS="-Wl,-R\$(LIB32DIR) $DSO32FLAGS"
DSO64FLAGS="-Wl,-R\$(LIB64DIR) $DSO64FLAGS"
LDFLAGS="$LDFLAGS -Wl,-R\$(libdir)"
EXPORT_LDFLAGS="-Wl,-R\$(libdir)"
fi
;;
IRIX | Linux | GNU)
# IRIX, Linux, and HURD...
if test $exec_prefix != /usr; then
DSOFLAGS="-Wl,-rpath,\$(libdir) $DSOFLAGS"
DSO32FLAGS="-Wl,-rpath,\$(LIB32DIR) $DSO32FLAGS"
DSO64FLAGS="-Wl,-rpath,\$(LIB64DIR) $DSO64FLAGS"
LDFLAGS="$LDFLAGS -Wl,-rpath,\$(libdir)"
EXPORT_LDFLAGS="-Wl,-rpath,\$(libdir)"
fi
;;
esac
else
DSOLIBS=""
@@ -152,5 +173,5 @@ AC_SUBST(IMGLIBS)
AC_SUBST(EXPORT_LDFLAGS)
dnl
dnl End of "$Id: cups-sharedlibs.m4 5112 2006-02-16 04:41:59Z mike $".
dnl End of "$Id: cups-sharedlibs.m4 5568 2006-05-22 15:34:01Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-openslp.m4 4494 2005-02-18 02:18:11Z mike $"
dnl "$Id: cups-slp.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl OpenSLP configuration stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -44,5 +44,5 @@ AC_SUBST(LIBSLP)
dnl
dnl End of "$Id: cups-openslp.m4 4494 2005-02-18 02:18:11Z mike $".
dnl End of "$Id: cups-slp.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+23 -14
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-ssl.m4 5264 2006-03-10 01:10:36Z mike $"
dnl "$Id: cups-ssl.m4 5525 2006-05-15 13:52:16Z mike $"
dnl
dnl OpenSSL/GNUTLS stuff for the Common UNIX Printing System (CUPS).
dnl
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Easy Software Products and are protected by Federal
@@ -36,6 +36,7 @@ AC_ARG_WITH(openssl-includes, [ --with-openssl-includes set directory for OpenS
SSLFLAGS=""
SSLLIBS=""
ENCRYPTION_REQUIRED=""
if test x$enable_ssl != xno; then
dnl Look for CDSA...
@@ -43,6 +44,10 @@ if test x$enable_ssl != xno; then
if test $uname = Darwin; then
AC_CHECK_HEADER(Security/SecureTransport.h,
[SSLLIBS="-framework CoreFoundation -framework Security"
# MacOS X doesn't (yet) come with pre-installed encryption
# certificates for CUPS, so don't enable encryption on
# /admin just yet...
#ENCRYPTION_REQUIRED=" Encryption Required"
AC_DEFINE(HAVE_SSL)
AC_DEFINE(HAVE_CDSASSL)])
fi
@@ -50,17 +55,14 @@ if test x$enable_ssl != xno; then
dnl Then look for GNU TLS...
if test "x${SSLLIBS}" = "x" -a "x${enable_gnutls}" != "xno"; then
AC_CHECK_HEADER(gnutls/gnutls.h,
dnl Save the current libraries so the crypto stuff isn't always
dnl included...
SAVELIBS="$LIBS"
AC_CHECK_LIB(gnutls, gnutls_x509_crt_set_dn_by_oid,
[SSLLIBS="-lgnutls"
AC_DEFINE(HAVE_SSL)
AC_DEFINE(HAVE_GNUTLS)])
LIBS="$SAVELIBS")
AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
if test "x$LIBGNUTLSCONFIG" != x; then
SSLLIBS=`$LIBGNUTLSCONFIG --libs`
SSLFLAGS=`$LIBGNUTLSCONFIG --cflags`
ENCRYPTION_REQUIRED=" Encryption Required"
AC_DEFINE(HAVE_SSL)
AC_DEFINE(HAVE_GNUTLS)
fi
fi
dnl Check for the OpenSSL library last...
@@ -84,6 +86,7 @@ if test x$enable_ssl != xno; then
AC_CHECK_LIB(ssl,SSL_new,
[SSLFLAGS="-DOPENSSL_DISABLE_OLD_DES_SUPPORT"
SSLLIBS="-lssl $libcrypto"
ENCRYPTION_REQUIRED=" Encryption Required"
AC_DEFINE(HAVE_SSL)
AC_DEFINE(HAVE_LIBSSL)],,
$libcrypto)
@@ -97,13 +100,19 @@ if test x$enable_ssl != xno; then
fi
fi
if test "x$SSLLIBS" != x; then
AC_MSG_RESULT([ Using SSLLIBS="$SSLLIBS"])
AC_MSG_RESULT([ Using SSLFLAGS="$SSLFLAGS"])
fi
AC_SUBST(SSLFLAGS)
AC_SUBST(SSLLIBS)
AC_SUBST(ENCRYPTION_REQUIRED)
EXPORT_SSLLIBS="$SSLLIBS"
AC_SUBST(EXPORT_SSLLIBS)
dnl
dnl End of "$Id: cups-ssl.m4 5264 2006-03-10 01:10:36Z mike $".
dnl End of "$Id: cups-ssl.m4 5525 2006-05-15 13:52:16Z mike $".
dnl
+2 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id$"
dnl "$Id: cups-threads.m4 5466 2006-04-26 19:52:27Z mike $"
dnl
dnl Threading stuff for the Common UNIX Printing System (CUPS).
dnl
@@ -53,5 +53,5 @@ fi
AC_SUBST(PTHREAD_FLAGS)
dnl
dnl End of "$Id$".
dnl End of "$Id: cups-threads.m4 5466 2006-04-26 19:52:27Z mike $".
dnl
+14
Ver Arquivo
@@ -70,6 +70,13 @@
#define CUPS_DEFAULT_IPP_PORT 631
/*
* Default printcap file...
*/
#define CUPS_DEFAULT_PRINTCAP "/etc/printcap"
/*
* Maximum number of file descriptors to support.
*/
@@ -422,6 +429,13 @@
#undef HAVE_DBUS
/*
* Do we have the AppleTalk/at_proto.h header?
*/
#undef HAVE_APPLETALK_AT_PROTO_H
#endif /* !_CUPS_CONFIG_H_ */
/*
+19 -11
Ver Arquivo
@@ -26,7 +26,6 @@ AC_INIT(cups/cups.h)
sinclude(config-scripts/cups-opsys.m4)
sinclude(config-scripts/cups-common.m4)
sinclude(config-scripts/cups-defaults.m4)
sinclude(config-scripts/cups-directories.m4)
sinclude(config-scripts/cups-manpages.m4)
@@ -43,19 +42,28 @@ sinclude(config-scripts/cups-pam.m4)
sinclude(config-scripts/cups-threads.m4)
sinclude(config-scripts/cups-largefile.m4)
sinclude(config-scripts/cups-launchd.m4)
MAKEDEFS="../Makedefs"
AC_SUBST(MAKEDEFS)
sinclude(config-scripts/cups-defaults.m4)
sinclude(config-scripts/cups-pap.m4)
sinclude(config-scripts/cups-pdf.m4)
sinclude(config-scripts/cups-scripting.m4)
AC_OUTPUT(Makedefs packaging/cups.list init/cups.sh cups-config
conf/cupsd.conf conf/pam.std doc/index.html doc/ja/index.html
doc/help/standard.html man/client.conf.man man/cups-deviced.man
man/cups-driverd.man man/cups-lpd.man man/cupsaddsmb.man
man/cupsd.man man/cupsd.conf.man man/lpoptions.man
LANGFILES=""
if test "x$LANGUAGES" != x; then
for lang in $LANGUAGES; do
LANGFILES="$LANGFILES doc/$lang/index.html"
LANGFILES="$LANGFILES templates/$lang/edit-config.tmpl"
LANGFILES="$LANGFILES templates/$lang/header.tmpl"
done
fi
AC_OUTPUT(Makedefs packaging/cups.list init/cups.sh init/cups-lpd cups-config
conf/cupsd.conf conf/pam.std doc/index.html
doc/help/standard.html man/client.conf.man
man/cups-deviced.man man/cups-driverd.man
man/cups-lpd.man man/cupsaddsmb.man man/cupsd.man
man/cupsd.conf.man man/lpoptions.man
templates/edit-config.tmpl templates/header.tmpl
templates/ja/header.tmpl)
$LANGFILES)
chmod +x cups-config
+21 -6
Ver Arquivo
@@ -31,6 +31,7 @@ exec_prefix=@exec_prefix@
bindir=@bindir@
includedir=@includedir@
libdir=@libdir@
imagelibdir=@libdir@
datadir=@datadir@
sysconfdir=@sysconfdir@
cups_datadir=@CUPS_DATADIR@
@@ -44,13 +45,27 @@ LDFLAGS="@EXPORT_LDFLAGS@"
LIBS="@EXPORT_SSLLIBS@ @LIBS@"
IMGLIBS="@EXPORT_LIBTIFF@ @EXPORT_LIBJPEG@ @EXPORT_LIBPNG@ @EXPORT_LIBZ@"
if test $includedir != /usr/include; then
CFLAGS="$CFLAGS -I$includedir"
# Check for local invocation...
selfdir=`dirname $0`
if test -f "$selfdir/cups/cups.h"; then
CFLAGS="-I$selfdir"
LDFLAGS="-L$selfdir/cups -L$selfdir/filter $LDFLAGS"
libdir="$selfdir/cups"
imagelibdir="$selfdir/filter"
if test ! -e "$selfdir/cups/raster.h"; then
ln -s ../filter/raster.h "$selfdir/cups"
fi
else
if test $includedir != /usr/include; then
CFLAGS="$CFLAGS -I$includedir"
fi
if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64; then
LDFLAGS="$LDFLAGS -L$libdir"
fi
fi
if test $libdir != /usr/lib -a $libdir != /usr/lib32; then
LDFLAGS="$LDFLAGS -L$libdir"
fi
usage ()
{
@@ -106,7 +121,7 @@ while test $# -gt 0; do
if test $image = no; then
echo $libdir/libcups.a $LIBS
else
echo $libdir/libcupsimage.a $IMGLIBS $libdir/libcups.a $LIBS
echo $imagelibdir/libcupsimage.a $IMGLIBS $libdir/libcups.a $LIBS
fi
fi
;;
+93 -102
Ver Arquivo
@@ -1,255 +1,246 @@
# DO NOT DELETE
adminutil.o: adminutil.h cups.h ipp.h http.h md5.h ppd.h array.h file.h
adminutil.o: language.h globals.h string.h ../config.h i18n.h normalize.h
adminutil.o: transcode.h debug.h
adminutil.o: language.h globals.h string.h ../config.h i18n.h transcode.h
adminutil.o: debug.h
array.o: array.h string.h ../config.h debug.h
attr.o: ppd.h array.h file.h debug.h string.h ../config.h
auth.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
auth.o: array.h file.h language.h i18n.h normalize.h transcode.h debug.h
auth.o: array.h file.h language.h i18n.h transcode.h debug.h
backchannel.o: cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
backend.o: backend.h string.h ../config.h
custom.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
custom.o: array.h file.h language.h i18n.h normalize.h transcode.h debug.h
custom.o: array.h file.h language.h i18n.h transcode.h debug.h
dest.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
dest.o: array.h file.h language.h i18n.h normalize.h transcode.h
dest.o: array.h file.h language.h i18n.h transcode.h
dir.o: dir.h string.h ../config.h debug.h
emit.o: ppd.h array.h file.h string.h ../config.h
encode.o: cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
encode.o: ipp-private.h string.h ../config.h debug.h
file.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h string.h
file.o: ../cups/debug.h file.h
file.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
file.o: string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
file.o: debug.h
getifaddrs.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
getputfile.o: cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
getputfile.o: string.h ../config.h debug.h
globals.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
globals.o: globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h
globals.o: normalize.h transcode.h
globals.o: transcode.h debug.h
http.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
http.o: string.h cups.h ppd.h array.h file.h language.h i18n.h normalize.h
http.o: transcode.h debug.h
http.o: string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
http.o: debug.h
http-addr.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
http-addr.o: array.h file.h language.h i18n.h normalize.h transcode.h debug.h
http-addr.o: array.h file.h language.h i18n.h transcode.h debug.h
http-addrlist.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
http-addrlist.o: globals.h string.h cups.h ppd.h array.h file.h language.h
http-addrlist.o: i18n.h normalize.h transcode.h debug.h
http-addrlist.o: i18n.h transcode.h debug.h
http-support.o: debug.h globals.h string.h ../config.h cups.h ipp.h http.h
http-support.o: md5.h ppd.h array.h file.h language.h i18n.h normalize.h
http-support.o: transcode.h
http-support.o: md5.h ppd.h array.h file.h language.h i18n.h transcode.h
ipp.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
ipp.o: string.h cups.h ppd.h array.h file.h language.h i18n.h normalize.h
ipp.o: transcode.h debug.h
ipp.o: string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
ipp.o: debug.h
ipp-support.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
ipp-support.o: array.h file.h language.h i18n.h normalize.h transcode.h
ipp-support.o: debug.h
ipp-support.o: array.h file.h language.h i18n.h transcode.h debug.h
langprintf.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
langprintf.o: array.h file.h language.h i18n.h normalize.h transcode.h
langprintf.o: array.h file.h language.h i18n.h transcode.h
language.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
language.o: array.h file.h language.h i18n.h normalize.h transcode.h debug.h
language.o: array.h file.h language.h i18n.h transcode.h debug.h
localize.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
localize.o: array.h file.h language.h i18n.h normalize.h transcode.h debug.h
localize.o: array.h file.h language.h i18n.h transcode.h debug.h
mark.o: cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h string.h
mark.o: ../config.h debug.h
md5.o: md5.h string.h ../config.h
md5passwd.o: http.h md5.h string.h ../config.h
normalize.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
normalize.o: array.h file.h language.h i18n.h normalize.h transcode.h debug.h
notify.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
notify.o: array.h file.h language.h i18n.h normalize.h transcode.h
notify.o: array.h file.h language.h i18n.h transcode.h
options.o: cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h string.h
options.o: ../config.h debug.h
page.o: ppd.h array.h file.h string.h ../config.h
ppd.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h array.h
ppd.o: file.h language.h i18n.h normalize.h transcode.h debug.h
ppd.o: file.h language.h i18n.h transcode.h debug.h
request.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
request.o: array.h file.h language.h i18n.h normalize.h transcode.h debug.h
request.o: array.h file.h language.h i18n.h transcode.h debug.h
snprintf.o: string.h ../config.h
string.o: debug.h string.h ../config.h globals.h cups.h ipp.h http.h md5.h
string.o: ppd.h array.h file.h language.h i18n.h normalize.h transcode.h
string.o: array.h debug.h string.h ../config.h
tempfile.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
tempfile.o: array.h file.h language.h i18n.h normalize.h transcode.h debug.h
tempfile.o: array.h file.h language.h i18n.h transcode.h debug.h
transcode.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
transcode.o: array.h file.h language.h i18n.h normalize.h transcode.h
transcode.o: array.h file.h language.h i18n.h transcode.h debug.h
usersys.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
usersys.o: globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h
usersys.o: normalize.h transcode.h
usersys.o: transcode.h
util.o: globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
util.o: array.h file.h language.h i18n.h normalize.h transcode.h debug.h
util.o: array.h file.h language.h i18n.h transcode.h debug.h
testadmin.o: adminutil.h cups.h ipp.h http.h md5.h ppd.h array.h file.h
testadmin.o: language.h string.h ../config.h
testarray.o: ../cups/string.h ../config.h string.h array.h dir.h debug.h
testfile.o: string.h ../config.h file.h debug.h
testhttp.o: http.h md5.h string.h ../config.h
testi18n.o: language.h array.h string.h ../config.h transcode.h normalize.h
testi18n.o: i18n.h transcode.h language.h array.h string.h ../config.h
testipp.o: ../cups/string.h ../config.h string.h ipp.h http.h md5.h
testlang.o: i18n.h language.h array.h
testlang.o: i18n.h transcode.h language.h array.h
testppd.o: ../cups/string.h ../config.h string.h ppd.h array.h file.h
# DO NOT DELETE
adminutil.32.o: adminutil.c adminutil.h cups.h ipp.h http.h md5.h ppd.h array.h file.h
adminutil.32.o: adminutil.c language.h globals.h string.h ../config.h i18n.h normalize.h
adminutil.32.o: adminutil.c transcode.h debug.h
adminutil.32.o: adminutil.c language.h globals.h string.h ../config.h i18n.h transcode.h
adminutil.32.o: adminutil.c debug.h
array.32.o: array.c array.h string.h ../config.h debug.h
attr.32.o: attr.c ppd.h array.h file.h debug.h string.h ../config.h
auth.32.o: auth.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
auth.32.o: auth.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
auth.32.o: auth.c array.h file.h language.h i18n.h transcode.h debug.h
backchannel.32.o: backchannel.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
backend.32.o: backend.c backend.h string.h ../config.h
custom.32.o: custom.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
custom.32.o: custom.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
custom.32.o: custom.c array.h file.h language.h i18n.h transcode.h debug.h
dest.32.o: dest.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
dest.32.o: dest.c array.h file.h language.h i18n.h normalize.h transcode.h
dest.32.o: dest.c array.h file.h language.h i18n.h transcode.h
dir.32.o: dir.c dir.h string.h ../config.h debug.h
emit.32.o: emit.c ppd.h array.h file.h string.h ../config.h
encode.32.o: encode.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
encode.32.o: encode.c ipp-private.h string.h ../config.h debug.h
file.32.o: file.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h string.h
file.32.o: file.c ../cups/debug.h file.h
file.32.o: file.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
file.32.o: file.c string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
file.32.o: file.c debug.h
getifaddrs.32.o: getifaddrs.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
getputfile.32.o: getputfile.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
getputfile.32.o: getputfile.c string.h ../config.h debug.h
globals.32.o: globals.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
globals.32.o: globals.c globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h
globals.32.o: globals.c normalize.h transcode.h
globals.32.o: globals.c transcode.h debug.h
http.32.o: http.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
http.32.o: http.c string.h cups.h ppd.h array.h file.h language.h i18n.h normalize.h
http.32.o: http.c transcode.h debug.h
http.32.o: http.c string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
http.32.o: http.c debug.h
http-addr.32.o: http-addr.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
http-addr.32.o: http-addr.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
http-addr.32.o: http-addr.c array.h file.h language.h i18n.h transcode.h debug.h
http-addrlist.32.o: http-addrlist.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
http-addrlist.32.o: http-addrlist.c globals.h string.h cups.h ppd.h array.h file.h language.h
http-addrlist.32.o: http-addrlist.c i18n.h normalize.h transcode.h debug.h
http-addrlist.32.o: http-addrlist.c i18n.h transcode.h debug.h
http-support.32.o: http-support.c debug.h globals.h string.h ../config.h cups.h ipp.h http.h
http-support.32.o: http-support.c md5.h ppd.h array.h file.h language.h i18n.h normalize.h
http-support.32.o: http-support.c transcode.h
http-support.32.o: http-support.c md5.h ppd.h array.h file.h language.h i18n.h transcode.h
ipp.32.o: ipp.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
ipp.32.o: ipp.c string.h cups.h ppd.h array.h file.h language.h i18n.h normalize.h
ipp.32.o: ipp.c transcode.h debug.h
ipp.32.o: ipp.c string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
ipp.32.o: ipp.c debug.h
ipp-support.32.o: ipp-support.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
ipp-support.32.o: ipp-support.c array.h file.h language.h i18n.h normalize.h transcode.h
ipp-support.32.o: ipp-support.c debug.h
ipp-support.32.o: ipp-support.c array.h file.h language.h i18n.h transcode.h debug.h
langprintf.32.o: langprintf.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
langprintf.32.o: langprintf.c array.h file.h language.h i18n.h normalize.h transcode.h
langprintf.32.o: langprintf.c array.h file.h language.h i18n.h transcode.h
language.32.o: language.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
language.32.o: language.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
language.32.o: language.c array.h file.h language.h i18n.h transcode.h debug.h
localize.32.o: localize.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
localize.32.o: localize.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
localize.32.o: localize.c array.h file.h language.h i18n.h transcode.h debug.h
mark.32.o: mark.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h string.h
mark.32.o: mark.c ../config.h debug.h
md5.32.o: md5.c md5.h string.h ../config.h
md5passwd.32.o: md5passwd.c http.h md5.h string.h ../config.h
normalize.32.o: normalize.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
normalize.32.o: normalize.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
notify.32.o: notify.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
notify.32.o: notify.c array.h file.h language.h i18n.h normalize.h transcode.h
notify.32.o: notify.c array.h file.h language.h i18n.h transcode.h
options.32.o: options.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h string.h
options.32.o: options.c ../config.h debug.h
page.32.o: page.c ppd.h array.h file.h string.h ../config.h
ppd.32.o: ppd.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h array.h
ppd.32.o: ppd.c file.h language.h i18n.h normalize.h transcode.h debug.h
ppd.32.o: ppd.c file.h language.h i18n.h transcode.h debug.h
request.32.o: request.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
request.32.o: request.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
request.32.o: request.c array.h file.h language.h i18n.h transcode.h debug.h
snprintf.32.o: snprintf.c string.h ../config.h
string.32.o: string.c debug.h string.h ../config.h globals.h cups.h ipp.h http.h md5.h
string.32.o: string.c ppd.h array.h file.h language.h i18n.h normalize.h transcode.h
string.32.o: string.c array.h debug.h string.h ../config.h
tempfile.32.o: tempfile.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
tempfile.32.o: tempfile.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
tempfile.32.o: tempfile.c array.h file.h language.h i18n.h transcode.h debug.h
transcode.32.o: transcode.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
transcode.32.o: transcode.c array.h file.h language.h i18n.h normalize.h transcode.h
transcode.32.o: transcode.c array.h file.h language.h i18n.h transcode.h debug.h
usersys.32.o: usersys.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
usersys.32.o: usersys.c globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h
usersys.32.o: usersys.c normalize.h transcode.h
usersys.32.o: usersys.c transcode.h
util.32.o: util.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
util.32.o: util.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
util.32.o: util.c array.h file.h language.h i18n.h transcode.h debug.h
testadmin.32.o: testadmin.c adminutil.h cups.h ipp.h http.h md5.h ppd.h array.h file.h
testadmin.32.o: testadmin.c language.h string.h ../config.h
testarray.32.o: testarray.c ../cups/string.h ../config.h string.h array.h dir.h debug.h
testfile.32.o: testfile.c string.h ../config.h file.h debug.h
testhttp.32.o: testhttp.c http.h md5.h string.h ../config.h
testi18n.32.o: testi18n.c language.h array.h string.h ../config.h transcode.h normalize.h
testi18n.32.o: testi18n.c i18n.h transcode.h language.h array.h string.h ../config.h
testipp.32.o: testipp.c ../cups/string.h ../config.h string.h ipp.h http.h md5.h
testlang.32.o: testlang.c i18n.h language.h array.h
testlang.32.o: testlang.c i18n.h transcode.h language.h array.h
testppd.32.o: testppd.c ../cups/string.h ../config.h string.h ppd.h array.h file.h
# DO NOT DELETE
adminutil.64.o: adminutil.c adminutil.h cups.h ipp.h http.h md5.h ppd.h array.h file.h
adminutil.64.o: adminutil.c language.h globals.h string.h ../config.h i18n.h normalize.h
adminutil.64.o: adminutil.c transcode.h debug.h
adminutil.64.o: adminutil.c language.h globals.h string.h ../config.h i18n.h transcode.h
adminutil.64.o: adminutil.c debug.h
array.64.o: array.c array.h string.h ../config.h debug.h
attr.64.o: attr.c ppd.h array.h file.h debug.h string.h ../config.h
auth.64.o: auth.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
auth.64.o: auth.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
auth.64.o: auth.c array.h file.h language.h i18n.h transcode.h debug.h
backchannel.64.o: backchannel.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
backend.64.o: backend.c backend.h string.h ../config.h
custom.64.o: custom.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
custom.64.o: custom.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
custom.64.o: custom.c array.h file.h language.h i18n.h transcode.h debug.h
dest.64.o: dest.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
dest.64.o: dest.c array.h file.h language.h i18n.h normalize.h transcode.h
dest.64.o: dest.c array.h file.h language.h i18n.h transcode.h
dir.64.o: dir.c dir.h string.h ../config.h debug.h
emit.64.o: emit.c ppd.h array.h file.h string.h ../config.h
encode.64.o: encode.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
encode.64.o: encode.c ipp-private.h string.h ../config.h debug.h
file.64.o: file.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h string.h
file.64.o: file.c ../cups/debug.h file.h
file.64.o: file.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
file.64.o: file.c string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
file.64.o: file.c debug.h
getifaddrs.64.o: getifaddrs.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
getputfile.64.o: getputfile.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
getputfile.64.o: getputfile.c string.h ../config.h debug.h
globals.64.o: globals.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
globals.64.o: globals.c globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h
globals.64.o: globals.c normalize.h transcode.h
globals.64.o: globals.c transcode.h debug.h
http.64.o: http.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
http.64.o: http.c string.h cups.h ppd.h array.h file.h language.h i18n.h normalize.h
http.64.o: http.c transcode.h debug.h
http.64.o: http.c string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
http.64.o: http.c debug.h
http-addr.64.o: http-addr.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
http-addr.64.o: http-addr.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
http-addr.64.o: http-addr.c array.h file.h language.h i18n.h transcode.h debug.h
http-addrlist.64.o: http-addrlist.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
http-addrlist.64.o: http-addrlist.c globals.h string.h cups.h ppd.h array.h file.h language.h
http-addrlist.64.o: http-addrlist.c i18n.h normalize.h transcode.h debug.h
http-addrlist.64.o: http-addrlist.c i18n.h transcode.h debug.h
http-support.64.o: http-support.c debug.h globals.h string.h ../config.h cups.h ipp.h http.h
http-support.64.o: http-support.c md5.h ppd.h array.h file.h language.h i18n.h normalize.h
http-support.64.o: http-support.c transcode.h
http-support.64.o: http-support.c md5.h ppd.h array.h file.h language.h i18n.h transcode.h
ipp.64.o: ipp.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
ipp.64.o: ipp.c string.h cups.h ppd.h array.h file.h language.h i18n.h normalize.h
ipp.64.o: ipp.c transcode.h debug.h
ipp.64.o: ipp.c string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
ipp.64.o: ipp.c debug.h
ipp-support.64.o: ipp-support.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
ipp-support.64.o: ipp-support.c array.h file.h language.h i18n.h normalize.h transcode.h
ipp-support.64.o: ipp-support.c debug.h
ipp-support.64.o: ipp-support.c array.h file.h language.h i18n.h transcode.h debug.h
langprintf.64.o: langprintf.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
langprintf.64.o: langprintf.c array.h file.h language.h i18n.h normalize.h transcode.h
langprintf.64.o: langprintf.c array.h file.h language.h i18n.h transcode.h
language.64.o: language.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
language.64.o: language.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
language.64.o: language.c array.h file.h language.h i18n.h transcode.h debug.h
localize.64.o: localize.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
localize.64.o: localize.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
localize.64.o: localize.c array.h file.h language.h i18n.h transcode.h debug.h
mark.64.o: mark.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h string.h
mark.64.o: mark.c ../config.h debug.h
md5.64.o: md5.c md5.h string.h ../config.h
md5passwd.64.o: md5passwd.c http.h md5.h string.h ../config.h
normalize.64.o: normalize.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
normalize.64.o: normalize.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
notify.64.o: notify.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
notify.64.o: notify.c array.h file.h language.h i18n.h normalize.h transcode.h
notify.64.o: notify.c array.h file.h language.h i18n.h transcode.h
options.64.o: options.c cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h string.h
options.64.o: options.c ../config.h debug.h
page.64.o: page.c ppd.h array.h file.h string.h ../config.h
ppd.64.o: ppd.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h array.h
ppd.64.o: ppd.c file.h language.h i18n.h normalize.h transcode.h debug.h
ppd.64.o: ppd.c file.h language.h i18n.h transcode.h debug.h
request.64.o: request.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
request.64.o: request.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
request.64.o: request.c array.h file.h language.h i18n.h transcode.h debug.h
snprintf.64.o: snprintf.c string.h ../config.h
string.64.o: string.c debug.h string.h ../config.h globals.h cups.h ipp.h http.h md5.h
string.64.o: string.c ppd.h array.h file.h language.h i18n.h normalize.h transcode.h
string.64.o: string.c array.h debug.h string.h ../config.h
tempfile.64.o: tempfile.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
tempfile.64.o: tempfile.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
tempfile.64.o: tempfile.c array.h file.h language.h i18n.h transcode.h debug.h
transcode.64.o: transcode.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
transcode.64.o: transcode.c array.h file.h language.h i18n.h normalize.h transcode.h
transcode.64.o: transcode.c array.h file.h language.h i18n.h transcode.h debug.h
usersys.64.o: usersys.c http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
usersys.64.o: usersys.c globals.h string.h cups.h ppd.h array.h file.h language.h i18n.h
usersys.64.o: usersys.c normalize.h transcode.h
usersys.64.o: usersys.c transcode.h
util.64.o: util.c globals.h string.h ../config.h cups.h ipp.h http.h md5.h ppd.h
util.64.o: util.c array.h file.h language.h i18n.h normalize.h transcode.h debug.h
util.64.o: util.c array.h file.h language.h i18n.h transcode.h debug.h
testadmin.64.o: testadmin.c adminutil.h cups.h ipp.h http.h md5.h ppd.h array.h file.h
testadmin.64.o: testadmin.c language.h string.h ../config.h
testarray.64.o: testarray.c ../cups/string.h ../config.h string.h array.h dir.h debug.h
testfile.64.o: testfile.c string.h ../config.h file.h debug.h
testhttp.64.o: testhttp.c http.h md5.h string.h ../config.h
testi18n.64.o: testi18n.c language.h array.h string.h ../config.h transcode.h normalize.h
testi18n.64.o: testi18n.c i18n.h transcode.h language.h array.h string.h ../config.h
testipp.64.o: testipp.c ../cups/string.h ../config.h string.h ipp.h http.h md5.h
testlang.64.o: testlang.c i18n.h language.h array.h
testlang.64.o: testlang.c i18n.h transcode.h language.h array.h
testppd.64.o: testppd.c ../cups/string.h ../config.h string.h ppd.h array.h file.h
+24 -20
Ver Arquivo
@@ -43,6 +43,7 @@ LIBOBJS = \
emit.o \
encode.o \
file.o \
getifaddrs.o \
getputfile.o \
globals.o \
http.o \
@@ -57,7 +58,6 @@ LIBOBJS = \
mark.o \
md5.o \
md5passwd.o \
normalize.o \
notify.o \
options.o \
page.o \
@@ -101,7 +101,6 @@ HEADERS = \
ipp.h \
language.h \
md5.h \
normalize.h \
ppd.h \
transcode.h
@@ -138,7 +137,8 @@ all: $(TARGETS)
clean:
$(RM) $(OBJS) $(TARGETS)
$(RM) libcups.so libcups.sl libcups.dylib libcups.32.so libcups.64.so
$(RM) libcups.so libcups.sl libcups.dylib
$(RM) -r 32bit 64it
#
@@ -174,10 +174,8 @@ install: all installhdrs $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
installstatic:
$(INSTALL_DIR) -m 755 $(LIBDIR)
if test $(LIBCUPS) != "libcups.a"; then \
$(INSTALL_LIB) libcups.a $(LIBDIR); \
$(RANLIB) $(LIBDIR)/libcups.a; \
fi
$(INSTALL_LIB) libcups.a $(LIBDIR)
$(RANLIB) $(LIBDIR)/libcups.a
installhdrs:
$(INSTALL_DIR) -m 755 $(INCLUDEDIR)/cups
@@ -187,12 +185,12 @@ installhdrs:
install32bit:
$(INSTALL_DIR) -m 755 $(LIB32DIR)
$(INSTALL_LIB) libcups.32.so.2 $(LIB32DIR)/libcups.so.2
$(INSTALL_LIB) 32bit/libcups.so.2 $(LIB32DIR)/libcups.so.2
$(LN) libcups.so $(LIB32DIR)/libcups.so.2
install64bit:
$(INSTALL_DIR) -m 755 $(LIB64DIR)
$(INSTALL_LIB) libcups.64.so.2 $(LIB64DIR)/libcups.so.2
$(INSTALL_LIB) 64bit/libcups.so.2 $(LIB64DIR)/libcups.so.2
$(LN) libcups.so $(LIB64DIR)/libcups.so.2
@@ -232,27 +230,33 @@ uninstall64bit:
libcups.so.2 libcups.sl.2: $(LIBOBJS)
echo Linking $@...
$(DSO) $(DSOFLAGS) -o $@ $(LIBOBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
$(RM) `basename $@ .2`
$(LN) $@ `basename $@ .2`
#
# libcups.32.so.2
# 32bit/libcups.so.2
#
libcups.32.so.2: $(LIB32OBJS)
32bit/libcups.so.2: $(LIB32OBJS)
echo Linking 32-bit $@...
$(DSO) $(C32FLAGS) $(DSOFLAGS) -o $@ $(LIB32OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
-mkdir 32bit
$(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
$(RM) 32bit/libcups.so
$(LN) libcups.so.2 32bit/libcups.so
#
# libcups.64.so.2
# 64bit/libcups.so.2
#
libcups.64.so.2: $(LIB64OBJS)
64bit/libcups.so.2: $(LIB64OBJS)
echo Linking 64-bit $@...
$(DSO) $(C64FLAGS) $(DSOFLAGS) -o $@ $(LIB64OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
-mkdir 64bit
$(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
$(RM) 64bit/libcups.so
$(LN) libcups.so.2 64bit/libcups.so
#
@@ -261,7 +265,7 @@ libcups.64.so.2: $(LIB64OBJS)
libcups.2.dylib: $(LIBOBJS)
echo Linking $@...
$(DSO) $(DSOFLAGS) -o $@ \
$(DSO) $(ARCHFLAGS) $(DSOFLAGS) -o $@ \
-install_name $(libdir)/$@ \
-current_version 2.7.0 \
-compatibility_version 2.0.0 \
@@ -274,7 +278,7 @@ libcups.2.dylib: $(LIBOBJS)
# libcups_s.a
#
libcups_s.a: $(LIBOBJS)
libcups_s.a: $(LIBOBJS) libcups_s.exp
echo Creating $@...
$(DSO) $(DSOFLAGS) -Wl,-bexport:libcups_s.exp -o libcups_s.o $(LIBOBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ) -lm
$(RM) $@
@@ -287,7 +291,7 @@ libcups_s.a: $(LIBOBJS)
libcups.la: $(LIBOBJS)
echo Linking $@...
$(CC) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
$(CC) $(ARCHFLAGS) $(DSOFLAGS) -o $@ $(LIBOBJS:.o=.lo) -rpath $(LIBDIR) \
-version-info 2:7 $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
@@ -425,7 +429,7 @@ apihelp:
file.h file.c dir.h dir.c >../doc/help/api-filedir.html
mxmldoc --section "Programming" --title "PPD API" \
--intro api-ppd.shtml \
ppd.h attr.c emit.c mark.c page.c \
ppd.h attr.c custom.c emit.c localize.c mark.c page.c \
ppd.c >../doc/help/api-ppd.html
mxmldoc --section "Programming" --title "HTTP and IPP APIs" \
--intro api-httpipp.shtml \
+1 -1
Ver Arquivo
@@ -168,7 +168,7 @@ cupsAdminCreateWindowsPPD(
* Create a temporary output file using the destination buffer...
*/
if ((dstfp = cupsTempFile2(buffer, bufsize)) < 0)
if ((dstfp = cupsTempFile2(buffer, bufsize)) == NULL)
{
cupsFileClose(srcfp);
+4 -1
Ver Arquivo
@@ -939,11 +939,14 @@ cups_array_find(cups_array_t *a, /* I - Array */
DEBUG_puts("cups_array_find: linear search");
diff = 0;
diff = 1;
for (current = 0; current < a->num_elements; current ++)
if (a->elements[current] == e)
{
diff = 0;
break;
}
}
/*
+7 -3
Ver Arquivo
@@ -92,9 +92,13 @@ cupsDoAuthentication(http_t *http, /* I - HTTP connection to server */
* See if we can do local authentication...
*/
if (!cups_local_auth(http))
if (http->digest_tries < 3 && !cups_local_auth(http))
{
DEBUG_printf(("cupsDoAuthentication: authstring=\"%s\"\n", http->authstring));
if (http->status == HTTP_UNAUTHORIZED)
http->digest_tries ++;
return (0);
}
@@ -108,8 +112,8 @@ cupsDoAuthentication(http_t *http, /* I - HTTP connection to server */
* Nope - get a new password from the user...
*/
snprintf(prompt, sizeof(prompt), "Password for %s on %s? ", cupsUser(),
http->hostname);
snprintf(prompt, sizeof(prompt), _("Password for %s on %s? "), cupsUser(),
http->hostname[0] == '/' ? "localhost" : http->hostname);
http->digest_tries = strncasecmp(http->fields[HTTP_FIELD_WWW_AUTHENTICATE],
"Digest", 5) != 0;
+1 -1
Ver Arquivo
@@ -161,7 +161,7 @@ cupsBackChannelWrite(
* Write error - abort on fatal errors...
*/
if (errno != EINTR && errno != EAGAIN)
if (errno != EINTR)
return (-1);
}
else
+12
Ver Arquivo
@@ -34,6 +34,10 @@
*
* Contents:
*
* ppdFindCustomOption() - Find a custom option.
* ppdFindCustomParam() - Find a parameter for a custom option.
* ppdFirstCustomParam() - Return the first parameter for a custom option.
* ppdNextCustomParam() - Return the next parameter for a custom option.
*/
/*
@@ -46,6 +50,8 @@
/*
* 'ppdFindCustomOption()' - Find a custom option.
*
* @since CUPS 1.2@
*/
ppd_coption_t * /* O - Custom option or NULL */
@@ -65,6 +71,8 @@ ppdFindCustomOption(ppd_file_t *ppd, /* I - PPD file */
/*
* 'ppdFindCustomParam()' - Find a parameter for a custom option.
*
* @since CUPS 1.2@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
@@ -84,6 +92,8 @@ ppdFindCustomParam(ppd_coption_t *opt, /* I - Custom option */
/*
* 'ppdFirstCustomParam()' - Return the first parameter for a custom option.
*
* @since CUPS 1.2@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
@@ -98,6 +108,8 @@ ppdFirstCustomParam(ppd_coption_t *opt) /* I - Custom option */
/*
* 'ppdNextCustomParam()' - Return the next parameter for a custom option.
*
* @since CUPS 1.2@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
+10
Ver Arquivo
@@ -531,6 +531,16 @@ cupsSetDests2(http_t *http, /* I - HTTP connection */
return (-1);
}
#ifndef WIN32
/*
* Set the permissions to 0644 when saving to the /etc/cups/lpoptions
* file...
*/
if (!getuid())
fchmod(fileno(fp), 0644);
#endif /* !WIN32 */
/*
* Write each printer; each line looks like:
*
+10 -3
Ver Arquivo
@@ -114,11 +114,13 @@ static const _ipp_option_t ipp_options[] =
{ "ppi-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ "prettyprint", IPP_TAG_BOOLEAN, IPP_TAG_JOB },
{ "prettyprint-default", IPP_TAG_BOOLEAN, IPP_TAG_PRINTER },
{ "printer-error-policy", IPP_TAG_NAME, IPP_TAG_PRINTER },
{ "printer-info", IPP_TAG_TEXT, IPP_TAG_PRINTER },
{ "printer-is-accepting-jobs",IPP_TAG_BOOLEAN, IPP_TAG_PRINTER },
{ "printer-is-shared", IPP_TAG_BOOLEAN, IPP_TAG_PRINTER },
{ "printer-make-and-model", IPP_TAG_TEXT, IPP_TAG_PRINTER },
{ "printer-more-info", IPP_TAG_URI, IPP_TAG_PRINTER },
{ "printer-op-policy", IPP_TAG_NAME, IPP_TAG_PRINTER },
{ "printer-resolution", IPP_TAG_RESOLUTION, IPP_TAG_JOB },
{ "printer-state", IPP_TAG_ENUM, IPP_TAG_PRINTER },
{ "printer-state-change-time",IPP_TAG_INTEGER, IPP_TAG_PRINTER },
@@ -131,6 +133,8 @@ static const _ipp_option_t ipp_options[] =
{ "raw", IPP_TAG_MIMETYPE, IPP_TAG_OPERATION },
{ "resolution", IPP_TAG_RESOLUTION, IPP_TAG_JOB },
{ "resolution-default", IPP_TAG_RESOLUTION, IPP_TAG_PRINTER },
{ "requesting-user-name-allowed", IPP_TAG_NAME, IPP_TAG_PRINTER },
{ "requesting-user-name-denied", IPP_TAG_NAME, IPP_TAG_PRINTER },
{ "saturation", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ "saturation-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ "scaling", IPP_TAG_INTEGER, IPP_TAG_JOB },
@@ -362,7 +366,7 @@ cupsEncodeOptions2(
* Copy the name over...
*/
if ((attr->name = strdup(option->name)) == NULL)
if ((attr->name = _cupsStrAlloc(option->name)) == NULL)
{
/*
* Ran out of memory!
@@ -513,14 +517,14 @@ cupsEncodeOptions2(
*/
attr->values[j].unknown.length = strlen(val);
attr->values[j].unknown.data = strdup(val);
attr->values[j].unknown.data = _cupsStrAlloc(val);
DEBUG_printf(("cupsEncodeOptions2: Added octet-string value \"%s\"...\n",
attr->values[j].unknown.data));
break;
default :
if ((attr->values[j].string.text = strdup(val)) == NULL)
if ((attr->values[j].string.text = _cupsStrAlloc(val)) == NULL)
{
/*
* Ran out of memory!
@@ -535,6 +539,9 @@ cupsEncodeOptions2(
break;
}
}
if (copy)
free(copy);
}
}
+273 -17
Ver Arquivo
@@ -35,9 +35,12 @@
* cupsFileFlush() - Flush pending output.
* cupsFileGetChar() - Get a single character from a file.
* cupsFileGetConf() - Get a line from a configuration file...
* cupsFileGetLine() - Get a CR and/or LF-terminated line that may
* contain binary data.
* cupsFileGets() - Get a CR and/or LF-terminated line.
* cupsFileLock() - Temporarily lock access to a file.
* cupsFileNumber() - Return the file descriptor associated with a CUPS file.
* cupsFileNumber() - Return the file descriptor associated with a CUPS
* file.
* cupsFileOpen() - Open a CUPS file.
* cupsFileOpenFd() - Open a CUPS file using a file descriptor.
* cupsFilePeekChar() - Peek at the next character from a file.
@@ -47,6 +50,9 @@
* cupsFileRead() - Read from a file.
* cupsFileRewind() - Rewind a file.
* cupsFileSeek() - Seek in a file.
* cupsFileStderr() - Return a CUPS file associated with stderr.
* cupsFileStdin() - Return a CUPS file associated with stdin.
* cupsFileStdout() - Return a CUPS file associated with stdout.
* cupsFileTell() - Return the current file position.
* cupsFileUnlock() - Unlock access to a file.
* cupsFileWrite() - Write to a file.
@@ -63,14 +69,13 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include "http-private.h"
#include "string.h"
#include <errno.h>
#include <cups/debug.h>
#include <sys/types.h>
#include <fcntl.h>
#include "http-private.h"
#include "globals.h"
#include "debug.h"
#include "file.h"
#ifdef HAVE_LIBZ
# include <zlib.h>
#endif /* HAVE_LIBZ */
@@ -99,6 +104,7 @@ struct _cups_file_s /**** CUPS file structure... ****/
int fd; /* File descriptor */
char mode, /* Mode ('r' or 'w') */
compressed, /* Compression used? */
is_stdio, /* stdin/out/err? */
eof, /* End of file? */
buf[4096], /* Buffer */
*ptr, /* Pointer into buffer */
@@ -135,6 +141,7 @@ cupsFileClose(cups_file_t *fp) /* I - CUPS file */
int fd; /* File descriptor */
char mode; /* Open mode */
int status; /* Return status */
int is_stdio; /* Is a stdio file? */
DEBUG_printf(("cupsFileClose(fp=%p)\n", fp));
@@ -226,8 +233,9 @@ cupsFileClose(cups_file_t *fp) /* I - CUPS file */
* Save the file descriptor we used and free memory...
*/
fd = fp->fd;
mode = fp->mode;
fd = fp->fd;
mode = fp->mode;
is_stdio = fp->is_stdio;
free(fp);
@@ -240,7 +248,7 @@ cupsFileClose(cups_file_t *fp) /* I - CUPS file */
if (closesocket(fd) < 0)
status = -1;
}
else
else if (!is_stdio)
{
if (close(fd) < 0)
status = -1;
@@ -257,7 +265,7 @@ cupsFileClose(cups_file_t *fp) /* I - CUPS file */
int /* O - CUPS_FILE_NONE or CUPS_FILE_GZIP */
cupsFileCompression(cups_file_t *fp) /* I - CUPS file */
{
return (fp->compressed);
return (fp ? fp->compressed : CUPS_FILE_NONE);
}
@@ -268,7 +276,7 @@ cupsFileCompression(cups_file_t *fp) /* I - CUPS file */
int /* O - 1 on EOF, 0 otherwise */
cupsFileEOF(cups_file_t *fp) /* I - CUPS file */
{
return (fp->eof);
return (fp ? fp->eof : 1);
}
@@ -560,6 +568,76 @@ cupsFileGetConf(cups_file_t *fp, /* I - CUPS file */
}
/*
* 'cupsFileGetLine()' - Get a CR and/or LF-terminated line that may
* contain binary data.
*
* This function differs from cupsFileGets() in that the trailing CR and LF
* are preserved, as is any binary data on the line. The buffer is nul-
* terminated, however you should use the returned length to determine
* the number of bytes on the line.
*/
size_t /* O - Number of bytes on line or 0 on EOF */
cupsFileGetLine(cups_file_t *fp, /* I - File to read from */
char *buf, /* I - Buffer */
size_t buflen) /* I - Size of buffer */
{
int ch; /* Character from file */
char *ptr, /* Current position in line buffer */
*end; /* End of line buffer */
/*
* Range check input...
*/
if (!fp || (fp->mode != 'r' && fp->mode != 's') || !buf || buflen < 3)
return (0);
/*
* Now loop until we have a valid line...
*/
for (ptr = buf, end = buf + buflen - 2; ptr < end ;)
{
if (fp->ptr >= fp->end)
if (cups_fill(fp) <= 0)
break;
*ptr++ = ch = *(fp->ptr)++;
if (ch == '\r')
{
/*
* Check for CR LF...
*/
if (fp->ptr >= fp->end)
if (cups_fill(fp) <= 0)
break;
if (*(fp->ptr) == '\n')
*ptr++ = *(fp->ptr)++;
break;
}
else if (ch == '\n')
{
/*
* Line feed ends a line...
*/
break;
}
}
*ptr = '\0';
return (ptr - buf);
}
/*
* 'cupsFileGets()' - Get a CR and/or LF-terminated line.
*/
@@ -1139,7 +1217,51 @@ cupsFileRead(cups_file_t *fp, /* I - CUPS file */
off_t /* O - New file position or -1 */
cupsFileRewind(cups_file_t *fp) /* I - CUPS file */
{
return (cupsFileSeek(fp, 0L));
/*
* Range check input...
*/
if (!fp || fp->mode != 'r')
return (-1);
/*
* Handle special cases...
*/
if (fp->pos == 0)
{
/*
* No seeking necessary...
*/
if (fp->ptr)
{
fp->ptr = fp->buf;
fp->eof = 0;
}
return (0);
}
/*
* Otherwise, seek in the file and cleanup any compression buffers...
*/
#ifdef HAVE_LIBZ
if (fp->compressed)
{
inflateEnd(&fp->stream);
fp->compressed = 0;
}
#endif /* HAVE_LIBZ */
lseek(fp->fd, 0, SEEK_SET);
fp->pos = 0;
fp->ptr = NULL;
fp->end = NULL;
return (0);
}
@@ -1165,6 +1287,13 @@ cupsFileSeek(cups_file_t *fp, /* I - CUPS file */
if (!fp || pos < 0 || fp->mode != 'r')
return (-1);
/*
* Handle special cases...
*/
if (pos == 0)
return (cupsFileRewind(fp));
if (fp->pos == pos)
{
/*
@@ -1180,20 +1309,40 @@ cupsFileSeek(cups_file_t *fp, /* I - CUPS file */
return (pos);
}
#ifdef HAVE_LIBZ
if (!fp->compressed && !fp->ptr)
{
/*
* Preload a buffer to determine whether the file is compressed...
*/
if (cups_fill(fp) < 0)
return (-1);
}
#endif /* HAVE_LIBZ */
/*
* Figure out the number of bytes in the current buffer, and then
* see if we are outside of it...
*/
bytes = fp->end - fp->buf;
if (fp->ptr)
bytes = fp->end - fp->buf;
else
bytes = 0;
fp->eof = 0;
DEBUG_printf((" bytes=" CUPS_LLFMT "\n", CUPS_LLCAST bytes));
if (pos < fp->pos)
{
/*
* Need to seek backwards...
*/
DEBUG_puts(" SEEK BACKWARDS");
#ifdef HAVE_LIBZ
if (fp->compressed)
{
@@ -1210,14 +1359,17 @@ cupsFileSeek(cups_file_t *fp, /* I - CUPS file */
if (bytes <= 0)
return (-1);
fp->ptr = fp->buf + pos - fp->pos;
}
else
#endif /* HAVE_LIBZ */
{
fp->pos = lseek(fp->fd, pos, SEEK_SET);
DEBUG_printf((" lseek() returned %ld...\n", (long)fp->pos));
fp->ptr = NULL;
fp->end = NULL;
DEBUG_printf((" lseek() returned %ld...\n", (long)fp->pos));
}
}
else if (pos >= (fp->pos + bytes))
@@ -1226,23 +1378,30 @@ cupsFileSeek(cups_file_t *fp, /* I - CUPS file */
* Need to seek forwards...
*/
DEBUG_puts(" SEEK FORWARDS");
#ifdef HAVE_LIBZ
if (fp->compressed || !fp->ptr)
if (fp->compressed)
{
while ((bytes = cups_fill(fp)) > 0)
{
if (pos >= fp->pos && pos < (fp->pos + bytes))
break;
}
if (bytes <= 0)
return (-1);
fp->ptr = fp->buf + pos - fp->pos;
}
else
#endif /* HAVE_LIBZ */
{
fp->pos = lseek(fp->fd, pos, SEEK_SET);
DEBUG_printf((" lseek() returned " CUPS_LLFMT "...\n", fp->pos));
fp->ptr = NULL;
fp->end = NULL;
DEBUG_printf((" lseek() returned " CUPS_LLFMT "...\n", fp->pos));
}
}
else
@@ -1252,14 +1411,111 @@ cupsFileSeek(cups_file_t *fp, /* I - CUPS file */
* range...
*/
DEBUG_puts(" SEEK INSIDE BUFFER");
fp->ptr = fp->buf + pos - fp->pos;
DEBUG_puts((" seek inside buffer..."));
}
return (fp->pos);
}
/*
* 'cupsFileStderr()' - Return a CUPS file associated with stderr.
*/
cups_file_t *
cupsFileStderr(void)
{
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals... */
/*
* Open file descriptor 2 as needed...
*/
if (!cg->stdio_files[2])
{
/*
* Flush any pending output on the stdio file...
*/
fflush(stderr);
/*
* Open file descriptor 2...
*/
if ((cg->stdio_files[2] = cupsFileOpenFd(2, "w")) != NULL)
cg->stdio_files[2]->is_stdio = 1;
}
return (cg->stdio_files[2]);
}
/*
* 'cupsFileStdin()' - Return a CUPS file associated with stdin.
*/
cups_file_t *
cupsFileStdin(void)
{
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals... */
/*
* Open file descriptor 0 as needed...
*/
if (!cg->stdio_files[0])
{
/*
* Open file descriptor 0...
*/
if ((cg->stdio_files[0] = cupsFileOpenFd(0, "r")) != NULL)
cg->stdio_files[0]->is_stdio = 1;
}
return (cg->stdio_files[0]);
}
/*
* 'cupsFileStdout()' - Return a CUPS file associated with stdout.
*/
cups_file_t *
cupsFileStdout(void)
{
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals... */
/*
* Open file descriptor 1 as needed...
*/
if (!cg->stdio_files[1])
{
/*
* Flush any pending output on the stdio file...
*/
fflush(stdout);
/*
* Open file descriptor 1...
*/
if ((cg->stdio_files[1] = cupsFileOpenFd(1, "w")) != NULL)
cg->stdio_files[1]->is_stdio = 1;
}
return (cg->stdio_files[1]);
}
/*
* 'cupsFileTell()' - Return the current file position.
*/
@@ -1267,7 +1523,7 @@ cupsFileSeek(cups_file_t *fp, /* I - CUPS file */
off_t /* O - File position */
cupsFileTell(cups_file_t *fp) /* I - CUPS file */
{
return (fp->pos);
return (fp ? fp->pos : 0);
}
+5
Ver Arquivo
@@ -81,6 +81,8 @@ extern int cupsFileFlush(cups_file_t *fp);
extern int cupsFileGetChar(cups_file_t *fp);
extern char *cupsFileGetConf(cups_file_t *fp, char *buf, size_t buflen,
char **value, int *linenum);
extern size_t cupsFileGetLine(cups_file_t *fp, char *buf,
size_t buflen);
extern char *cupsFileGets(cups_file_t *fp, char *buf, size_t buflen);
extern int cupsFileLock(cups_file_t *fp, int block);
extern int cupsFileNumber(cups_file_t *fp);
@@ -93,6 +95,9 @@ extern int cupsFilePuts(cups_file_t *fp, const char *s);
extern ssize_t cupsFileRead(cups_file_t *fp, char *buf, size_t bytes);
extern off_t cupsFileRewind(cups_file_t *fp);
extern off_t cupsFileSeek(cups_file_t *fp, off_t pos);
extern cups_file_t *cupsFileStderr(void);
extern cups_file_t *cupsFileStdin(void);
extern cups_file_t *cupsFileStdout(void);
extern off_t cupsFileTell(cups_file_t *fp);
extern int cupsFileUnlock(cups_file_t *fp);
extern ssize_t cupsFileWrite(cups_file_t *fp, const char *buf, size_t bytes);
+276
Ver Arquivo
@@ -0,0 +1,276 @@
/*
* "$Id$"
*
* Network interface functions for the Common UNIX Printing System
* (CUPS) scheduler.
*
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the file
* "LICENSE" which should have been included with this file. If this
* file is missing or damaged please contact Easy Software Products
* at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636 USA
*
* Voice: (301) 373-9600
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*
* Contents:
*
* _cups_getifaddrs() - Get a list of network interfaces on the system.
* _cups_freeifaddrs() - Free an interface list...
*/
/*
* Include necessary headers.
*/
#include "http-private.h"
#ifndef HAVE_GETIFADDRS
/*
* '_cups_getifaddrs()' - Get a list of network interfaces on the system.
*/
int /* O - 0 on success, -1 on error */
_cups_getifaddrs(struct ifaddrs **addrs)/* O - List of interfaces */
{
int sock; /* Socket */
char buffer[65536], /* Buffer for address info */
*bufptr, /* Pointer into buffer */
*bufend; /* End of buffer */
struct ifconf conf; /* Interface configurations */
struct sockaddr addr; /* Address data */
struct ifreq *ifp; /* Interface data */
int ifpsize; /* Size of interface data */
struct ifaddrs *temp; /* Pointer to current interface */
struct ifreq request; /* Interface request */
/*
* Start with an empty list...
*/
if (addrs == NULL)
return (-1);
*addrs = NULL;
/*
* Create a UDP socket to get the interface data...
*/
memset (&addr, 0, sizeof(addr));
if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
return (-1);
/*
* Try to get the list of interfaces...
*/
conf.ifc_len = sizeof(buffer);
conf.ifc_buf = buffer;
if (ioctl(sock, SIOCGIFCONF, &conf) < 0)
{
/*
* Couldn't get the list of interfaces...
*/
close(sock);
return (-1);
}
/*
* OK, got the list of interfaces, now lets step through the
* buffer to pull them out...
*/
# ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
# define sockaddr_len(a) ((a)->sa_len)
# else
# define sockaddr_len(a) (sizeof(struct sockaddr))
# endif /* HAVE_STRUCT_SOCKADDR_SA_LEN */
for (bufptr = buffer, bufend = buffer + conf.ifc_len;
bufptr < bufend;
bufptr += ifpsize)
{
/*
* Get the current interface information...
*/
ifp = (struct ifreq *)bufptr;
ifpsize = sizeof(ifp->ifr_name) + sockaddr_len(&(ifp->ifr_addr));
if (ifpsize < sizeof(struct ifreq))
ifpsize = sizeof(struct ifreq);
memset(&request, 0, sizeof(request));
memcpy(request.ifr_name, ifp->ifr_name, sizeof(ifp->ifr_name));
/*
* Check the status of the interface...
*/
if (ioctl(sock, SIOCGIFFLAGS, &request) < 0)
continue;
/*
* Allocate memory for a single interface record...
*/
if ((temp = calloc(1, sizeof(struct ifaddrs))) == NULL)
{
/*
* Unable to allocate memory...
*/
close(sock);
return (-1);
}
/*
* Add this record to the front of the list and copy the name, flags,
* and network address...
*/
temp->ifa_next = *addrs;
*addrs = temp;
temp->ifa_name = strdup(ifp->ifr_name);
temp->ifa_flags = request.ifr_flags;
if ((temp->ifa_addr = calloc(1, sockaddr_len(&(ifp->ifr_addr)))) != NULL)
memcpy(temp->ifa_addr, &(ifp->ifr_addr), sockaddr_len(&(ifp->ifr_addr)));
/*
* Try to get the netmask for the interface...
*/
if (!ioctl(sock, SIOCGIFNETMASK, &request))
{
/*
* Got it, make a copy...
*/
if ((temp->ifa_netmask = calloc(1, sizeof(request.ifr_netmask))) != NULL)
memcpy(temp->ifa_netmask, &(request.ifr_netmask),
sizeof(request.ifr_netmask));
}
/*
* Then get the broadcast or point-to-point (destination) address,
* if applicable...
*/
if (temp->ifa_flags & IFF_BROADCAST)
{
/*
* Have a broadcast address, so get it!
*/
if (!ioctl(sock, SIOCGIFBRDADDR, &request))
{
/*
* Got it, make a copy...
*/
if ((temp->ifa_broadaddr =
calloc(1, sizeof(request.ifr_broadaddr))) != NULL)
memcpy(temp->ifa_broadaddr, &(request.ifr_broadaddr),
sizeof(request.ifr_broadaddr));
}
}
else if (temp->ifa_flags & IFF_POINTOPOINT)
{
/*
* Point-to-point interface; grab the remote address...
*/
if (!ioctl(sock, SIOCGIFDSTADDR, &request))
{
temp->ifa_dstaddr = malloc(sizeof(request.ifr_dstaddr));
memcpy(temp->ifa_dstaddr, &(request.ifr_dstaddr),
sizeof(request.ifr_dstaddr));
}
}
}
/*
* OK, we're done with the socket, close it and return 0...
*/
close(sock);
return (0);
}
/*
* '_cups_freeifaddrs()' - Free an interface list...
*/
void
_cups_freeifaddrs(struct ifaddrs *addrs)/* I - Interface list to free */
{
struct ifaddrs *next; /* Next interface in list */
while (addrs != NULL)
{
/*
* Make a copy of the next interface pointer...
*/
next = addrs->ifa_next;
/*
* Free data values as needed...
*/
if (addrs->ifa_name)
{
free(addrs->ifa_name);
addrs->ifa_name = NULL;
}
if (addrs->ifa_addr)
{
free(addrs->ifa_addr);
addrs->ifa_addr = NULL;
}
if (addrs->ifa_netmask)
{
free(addrs->ifa_netmask);
addrs->ifa_netmask = NULL;
}
if (addrs->ifa_dstaddr)
{
free(addrs->ifa_dstaddr);
addrs->ifa_dstaddr = NULL;
}
/*
* Free this node and continue to the next...
*/
free(addrs);
addrs = next;
}
}
#endif /* !HAVE_GETIFADDRS */
/*
* End of "$Id$".
*/
+19 -6
Ver Arquivo
@@ -37,6 +37,7 @@
#include "http-private.h"
#include "globals.h"
#include "debug.h"
#include <stdlib.h>
@@ -101,6 +102,8 @@ _cupsGlobals(void)
* Initialize the global data exactly once...
*/
DEBUG_printf(("_cupsGlobals(): globals_key_once=%d\n", globals_key_once));
pthread_once(&globals_key_once, globals_init);
/*
@@ -109,6 +112,8 @@ _cupsGlobals(void)
if ((globals = (_cups_globals_t *)pthread_getspecific(globals_key)) == NULL)
{
DEBUG_puts("_cupsGlobals: allocating memory for thread...");
/*
* No, allocate memory as set the pointer for the key...
*/
@@ -116,6 +121,8 @@ _cupsGlobals(void)
globals = calloc(1, sizeof(_cups_globals_t));
pthread_setspecific(globals_key, globals);
DEBUG_printf((" globals=%p\n", globals));
/*
* Initialize variables that have non-zero values
*/
@@ -142,6 +149,9 @@ static void
globals_init()
{
pthread_key_create(&globals_key, globals_destructor);
DEBUG_printf(("globals_init(): globals_key=%x(%u)\n", globals_key,
globals_key));
}
@@ -152,18 +162,21 @@ globals_init()
static void
globals_destructor(void *value) /* I - Data to free */
{
int i; /* Looping var */
_cups_globals_t *cg; /* Global data */
DEBUG_printf(("globals_destructor(value=%p)\n", value));
cg = (_cups_globals_t *)value;
if (cg->http)
httpClose(cg->http);
httpClose(cg->http);
_cupsStrFlush(cg);
_cupsLangFlush(cg);
_cupsCharmapFlush(cg);
_cupsNormalizeMapsFlush(cg);
for (i = 0; i < 3; i ++)
cupsFileClose(cg->stdio_files[i]);
if (cg->last_status_message)
free(cg->last_status_message);
cupsFreeOptions(cg->cupsd_num_settings, cg->cupsd_settings);
+3 -21
Ver Arquivo
@@ -34,8 +34,6 @@
# include "string.h"
# include "cups.h"
# include "i18n.h"
# include "normalize.h"
# include "transcode.h"
# ifdef HAVE_PTHREAD_H
# include <pthread.h>
@@ -74,6 +72,9 @@ typedef struct _cups_globals_s /**** CUPS global state data ****/
/* Number of server settings */
cups_option_t *cupsd_settings;/* Server settings */
/* file.c */
cups_file_t *stdio_files[3];/* stdin, stdout, stderr */
/* http.c */
char http_date[256]; /* Date+time buffer */
@@ -93,15 +94,7 @@ typedef struct _cups_globals_s /**** CUPS global state data ****/
char ipp_unknown[255];
/* Unknown error statuses */
/* normalize.c */
_cups_norm_map_t *normmap_cache; /* Normalize Map cache */
_cups_fold_map_t *foldmap_cache; /* Case Fold cache */
_cups_prop_map_t *propmap_cache; /* Char Prop Map Cache */
_cups_comb_map_t *combmap_cache; /* Comb Class Map Cache */
_cups_break_map_t *breakmap_cache;/* Line Break Map Cache */
/* language.c */
cups_lang_t *lang_cache; /* Language string cache */
cups_lang_t *lang_default; /* Default language */
# ifdef __APPLE__
# ifdef HAVE_CF_LOCALE_ID
@@ -119,10 +112,6 @@ typedef struct _cups_globals_s /**** CUPS global state data ****/
/* tempfile.c */
char tempfile[1024]; /* cupsTempFd/File buffer */
/* transcode.c */
_cups_cmap_t *cmap_cache; /* SBCS Charmap Cache */
_cups_vmap_t *vmap_cache; /* VBCS Charmap Cache */
/* usersys.c */
http_encryption_t encryption; /* Encryption setting */
char user[65], /* User name */
@@ -140,9 +129,6 @@ typedef struct _cups_globals_s /**** CUPS global state data ****/
/* Default printer */
char ppd_filename[HTTP_MAX_URI];
/* PPD filename */
/* string.c */
cups_array_t *stringpool; /* String pool */
} _cups_globals_t;
@@ -152,11 +138,7 @@ typedef struct _cups_globals_s /**** CUPS global state data ****/
extern const char *_cupsGetPassword(const char *prompt);
extern _cups_globals_t *_cupsGlobals(void);
extern void _cupsLangFlush(_cups_globals_t *cg);
extern void _cupsCharmapFlush(_cups_globals_t *cg);
extern void _cupsNormalizeMapsFlush(_cups_globals_t *cg);
extern void _cupsSetError(ipp_status_t status, const char *message);
extern void _cupsStrFlush(_cups_globals_t *cg);
/*
+21 -2
Ver Arquivo
@@ -52,6 +52,9 @@
int /* O - 1 if "any", 0 otherwise */
httpAddrAny(const http_addr_t *addr) /* I - Address to check */
{
if (!addr)
return (0);
#ifdef AF_INET6
if (addr->addr.sa_family == AF_INET6 &&
IN6_IS_ADDR_UNSPECIFIED(&(addr->ipv6.sin6_addr)))
@@ -76,6 +79,12 @@ int /* O - 1 if equal, 0 if not */
httpAddrEqual(const http_addr_t *addr1, /* I - First address */
const http_addr_t *addr2) /* I - Second address */
{
if (!addr1 && !addr2)
return (1);
if (!addr1 || !addr2)
return (0);
if (addr1->addr.sa_family != addr2->addr.sa_family)
return (0);
@@ -102,6 +111,9 @@ httpAddrEqual(const http_addr_t *addr1, /* I - First address */
int /* O - Length in bytes */
httpAddrLength(const http_addr_t *addr) /* I - Address */
{
if (!addr)
return (0);
#ifdef AF_INET6
if (addr->addr.sa_family == AF_INET6)
return (sizeof(addr->ipv6));
@@ -131,6 +143,9 @@ int /* O - 1 if local host, 0 otherwise */
httpAddrLocalhost(
const http_addr_t *addr) /* I - Address to check */
{
if (!addr)
return (1);
#ifdef AF_INET6
if (addr->addr.sa_family == AF_INET6 &&
IN6_IS_ADDR_LOOPBACK(&(addr->ipv6.sin6_addr)))
@@ -508,6 +523,9 @@ httpGetHostname(http_t *http, /* I - HTTP connection or NULL */
struct hostent *host; /* Host entry to get FQDN */
if (!s || slen <= 1)
return (NULL);
if (http)
{
if (http->hostname[0] == '/')
@@ -521,7 +539,8 @@ httpGetHostname(http_t *http, /* I - HTTP connection or NULL */
* Get the hostname...
*/
gethostname(s, slen);
if (gethostname(s, slen) < 0)
strlcpy(s, "localhost", slen);
if (!strchr(s, '.'))
{
@@ -529,7 +548,7 @@ httpGetHostname(http_t *http, /* I - HTTP connection or NULL */
* The hostname is not a FQDN, so look it up...
*/
if ((host = gethostbyname(s)) != NULL)
if ((host = gethostbyname(s)) != NULL && host->h_name)
strlcpy(s, host->h_name, slen);
}
}
+2 -2
Ver Arquivo
@@ -411,7 +411,7 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
# ifdef AF_INET6
if (host->h_addrtype == AF_INET6)
{
first->addr.ipv6.sin6_family = AF_INET6;
temp->addr.ipv6.sin6_family = AF_INET6;
memcpy(&(temp->addr.ipv6), host->h_addr_list[i],
sizeof(temp->addr.ipv6));
temp->addr.ipv6.sin6_port = htons(portnum);
@@ -419,7 +419,7 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
else
# endif /* AF_INET6 */
{
first->addr.ipv4.sin_family = AF_INET;
temp->addr.ipv4.sin_family = AF_INET;
memcpy(&(temp->addr.ipv4), host->h_addr_list[i],
sizeof(temp->addr.ipv4));
temp->addr.ipv4.sin_port = htons(portnum);
+66 -2
Ver Arquivo
@@ -31,7 +31,8 @@
* Include necessary headers...
*/
# include "config.h"
# include <stdlib.h>
# include <config.h>
# ifdef __sun
/*
@@ -98,7 +99,20 @@ typedef struct
# include <Security/SecureTransport.h>
typedef SSLConnectionRef http_tls_t;
typedef struct /**** CDSA connection information ****/
{
SSLContextRef session; /* CDSA session object */
CFArrayRef certsArray; /* Certificates array */
} http_tls_t;
typedef union _cdsa_conn_ref_u /**** CDSA Connection reference union
**** used to resolve 64-bit casting
**** warnings.
****/
{
SSLConnectionRef connection; /* SSL connection pointer */
int sock; /* Socket */
} cdsa_conn_ref_t;
extern OSStatus _httpReadCDSA(SSLConnectionRef connection, void *data,
size_t *dataLength);
@@ -120,6 +134,56 @@ extern const char *_cups_hstrerror(int error);
extern const char *hstrerror(int error);
# endif /* !HAVE_HSTRERROR */
/*
* Some OS's don't have getifaddrs() and freeifaddrs()...
*/
# include <net/if.h>
# ifdef HAVE_GETIFADDRS
# include <ifaddrs.h>
# else
# include <sys/ioctl.h>
# ifdef HAVE_SYS_SOCKIO_H
# include <sys/sockio.h>
# endif /* HAVE_SYS_SOCKIO_H */
# ifdef ifa_dstaddr
# undef ifa_dstaddr
# endif /* ifa_dstaddr */
# ifndef ifr_netmask
# define ifr_netmask ifr_addr
# endif /* !ifr_netmask */
struct ifaddrs /**** Interface Structure ****/
{
struct ifaddrs *ifa_next; /* Next interface in list */
char *ifa_name; /* Name of interface */
unsigned int ifa_flags; /* Flags (up, point-to-point, etc.) */
struct sockaddr *ifa_addr, /* Network address */
*ifa_netmask; /* Address mask */
union
{
struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */
} ifa_ifu;
void *ifa_data; /* Interface statistics */
};
# ifndef ifa_broadaddr
# define ifa_broadaddr ifa_ifu.ifu_broadaddr
# endif /* !ifa_broadaddr */
# ifndef ifa_dstaddr
# define ifa_dstaddr ifa_ifu.ifu_dstaddr
# endif /* !ifa_dstaddr */
extern int _cups_getifaddrs(struct ifaddrs **addrs);
# define getifaddrs _cups_getifaddrs
extern void _cups_freeifaddrs(struct ifaddrs *addrs);
# define freeifaddrs _cups_freeifaddrs
# endif /* HAVE_GETIFADDRS */
#endif /* !_CUPS_HTTP_PRIVATE_H_ */
/*
+5 -1
Ver Arquivo
@@ -1057,7 +1057,7 @@ httpSeparateURI(
*port = strtol(uri + 1, (char **)&uri, 10);
if (*uri != '/')
if (*uri != '/' && *uri)
{
*port = 0;
return (HTTP_URI_BAD_PORT);
@@ -1141,6 +1141,10 @@ httpStatus(http_status_t status) /* I - HTTP status code */
return ("Accepted");
case HTTP_NO_CONTENT :
return ("No Content");
case HTTP_MOVED_PERMANENTLY :
return ("Moved Permanently");
case HTTP_SEE_OTHER :
return ("See Other");
case HTTP_NOT_MODIFIED :
return ("Not Modified");
case HTTP_BAD_REQUEST :
+95 -50
Ver Arquivo
@@ -867,7 +867,11 @@ httpGets(char *line, /* I - Line to read into */
*/
if (!http->blocking && !http_wait(http, 1000))
{
DEBUG_puts("httpGets: Timed out!");
http->error = ETIMEDOUT;
return (NULL);
}
#ifdef HAVE_SSL
if (http->tls)
@@ -1388,11 +1392,15 @@ _httpReadCDSA(
void *data, /* I - Data buffer */
size_t *dataLength) /* IO - Number of bytes */
{
OSStatus result; /* Return value */
ssize_t bytes; /* Number of bytes read */
OSStatus result; /* Return value */
ssize_t bytes; /* Number of bytes read */
cdsa_conn_ref_t u; /* Connection reference union */
u.connection = connection;
do
bytes = recv((int)connection, data, *dataLength, 0);
bytes = recv(u.sock, data, *dataLength, 0);
while (bytes == -1 && errno == EINTR);
if (bytes == *dataLength)
@@ -1692,6 +1700,7 @@ httpUpdate(http_t *http) /* I - HTTP connection */
case HTTP_PUT :
http->state ++;
case HTTP_POST_SEND :
case HTTP_HEAD :
break;
default :
@@ -1961,11 +1970,15 @@ _httpWriteCDSA(
const void *data, /* I - Data buffer */
size_t *dataLength) /* IO - Number of bytes */
{
OSStatus result; /* Return value */
ssize_t bytes; /* Number of bytes read */
OSStatus result; /* Return value */
ssize_t bytes; /* Number of bytes read */
cdsa_conn_ref_t u; /* Connection reference union */
u.connection = connection;
do
bytes = write((int)connection, data, *dataLength);
bytes = write(u.sock, data, *dataLength);
while (bytes == -1 && errno == EINTR);
if (bytes == *dataLength)
@@ -2032,7 +2045,7 @@ http_read_ssl(http_t *http, /* I - HTTP connection */
size_t processed; /* Number of bytes processed */
error = SSLRead((SSLContextRef)http->tls, buf, len, &processed);
error = SSLRead(((http_tls_t *)http->tls)->session, buf, len, &processed);
switch (error)
{
@@ -2208,15 +2221,16 @@ static int /* O - Status of connection */
http_setup_ssl(http_t *http) /* I - HTTP connection */
{
# ifdef HAVE_LIBSSL
SSL_CTX *context; /* Context for encryption */
SSL *conn; /* Connection for encryption */
SSL_CTX *context; /* Context for encryption */
SSL *conn; /* Connection for encryption */
# elif defined(HAVE_GNUTLS)
http_tls_t *conn; /* TLS session object */
http_tls_t *conn; /* TLS session object */
gnutls_certificate_client_credentials *credentials;
/* TLS credentials */
/* TLS credentials */
# elif defined(HAVE_CDSASSL)
SSLContextRef conn; /* Context for encryption */
OSStatus error; /* Error info */
OSStatus error; /* Error code */
http_tls_t *conn; /* CDSA connection information */
cdsa_conn_ref_t u; /* Connection reference union */
# endif /* HAVE_LIBSSL */
@@ -2253,9 +2267,7 @@ http_setup_ssl(http_t *http) /* I - HTTP connection */
}
# elif defined(HAVE_GNUTLS)
conn = (http_tls_t *)malloc(sizeof(http_tls_t));
if (conn == NULL)
if ((conn = (http_tls_t *)malloc(sizeof(http_tls_t))) == NULL)
{
http->error = errno;
http->status = HTTP_ERROR;
@@ -2294,34 +2306,51 @@ http_setup_ssl(http_t *http) /* I - HTTP connection */
conn->credentials = credentials;
# elif defined(HAVE_CDSASSL)
error = SSLNewContext(false, &conn);
conn = (http_tls_t *)calloc(1, sizeof(http_tls_t));
if (!error)
error = SSLSetIOFuncs(conn, _httpReadCDSA, _httpWriteCDSA);
if (conn == NULL)
return (-1);
if (!error)
error = SSLSetConnection(conn, (SSLConnectionRef)http->fd);
if (!error)
error = SSLSetAllowsExpiredCerts(conn, true);
if (!error)
error = SSLSetAllowsAnyRoot(conn, true);
if (!error)
{
while ((error = SSLHandshake(conn)) == errSSLWouldBlock)
usleep(1000);
}
if (error != 0)
if ((error = SSLNewContext(false, &conn->session)))
{
http->error = error;
http->status = HTTP_ERROR;
SSLDisposeContext(conn);
free(conn);
return (-1);
}
close(http->fd);
/*
* Use a union to resolve warnings about int/pointer size mismatches...
*/
u.connection = NULL;
u.sock = http->fd;
error = SSLSetConnection(conn->session, u.connection);
if (!error)
error = SSLSetIOFuncs(conn->session, _httpReadCDSA, _httpWriteCDSA);
if (!error)
error = SSLSetAllowsExpiredCerts(conn->session, true);
if (!error)
error = SSLSetAllowsAnyRoot(conn->session, true);
if (!error)
{
while ((error = SSLHandshake(conn->session)) == errSSLWouldBlock)
usleep(1000);
}
if (error)
{
http->error = error;
http->status = HTTP_ERROR;
SSLDisposeContext(conn->session);
free(conn);
return (-1);
}
@@ -2339,11 +2368,11 @@ http_setup_ssl(http_t *http) /* I - HTTP connection */
*/
static void
http_shutdown_ssl(http_t *http) /* I - HTTP connection */
http_shutdown_ssl(http_t *http) /* I - HTTP connection */
{
# ifdef HAVE_LIBSSL
SSL_CTX *context; /* Context for encryption */
SSL *conn; /* Connection for encryption */
SSL_CTX *context; /* Context for encryption */
SSL *conn; /* Connection for encryption */
conn = (SSL *)(http->tls);
@@ -2354,9 +2383,9 @@ http_shutdown_ssl(http_t *http) /* I - HTTP connection */
SSL_free(conn);
# elif defined(HAVE_GNUTLS)
http_tls_t *conn; /* Encryption session */
http_tls_t *conn; /* Encryption session */
gnutls_certificate_client_credentials *credentials;
/* TLS credentials */
/* TLS credentials */
conn = (http_tls_t *)(http->tls);
@@ -2369,10 +2398,20 @@ http_shutdown_ssl(http_t *http) /* I - HTTP connection */
free(conn);
# elif defined(HAVE_CDSASSL)
while (SSLClose((SSLContextRef)http->tls) == errSSLWouldBlock)
http_tls_t *conn; /* CDSA connection information */
conn = (http_tls_t *)(http->tls);
while (SSLClose(conn->session) == errSSLWouldBlock)
usleep(1000);
SSLDisposeContext((SSLContextRef)http->tls);
SSLDisposeContext(conn->session);
if (conn->certsArray)
CFRelease(conn->certsArray);
free(conn);
# endif /* HAVE_LIBSSL */
http->tls = NULL;
@@ -2385,11 +2424,11 @@ http_shutdown_ssl(http_t *http) /* I - HTTP connection */
* 'http_upgrade()' - Force upgrade to TLS encryption.
*/
static int /* O - Status of connection */
http_upgrade(http_t *http) /* I - HTTP connection */
static int /* O - Status of connection */
http_upgrade(http_t *http) /* I - HTTP connection */
{
int ret; /* Return value */
http_t myhttp; /* Local copy of HTTP data */
int ret; /* Return value */
http_t myhttp; /* Local copy of HTTP data */
DEBUG_printf(("http_upgrade(%p)\n", http));
@@ -2509,7 +2548,7 @@ http_wait(http_t *http, /* I - HTTP connection */
# elif defined(HAVE_CDSASSL)
size_t bytes; /* Bytes that are available */
if (!SSLGetBufferedReadSize((SSLContextRef)http->tls, &bytes) && bytes > 0)
if (!SSLGetBufferedReadSize(((http_tls_t *)http->tls)->session, &bytes) && bytes > 0)
return (1);
# endif /* HAVE_LIBSSL */
}
@@ -2552,6 +2591,8 @@ http_wait(http_t *http, /* I - HTTP connection */
{
FD_SET(http->fd, http->input_set);
DEBUG_printf(("http_wait: msec=%d, http->fd=%d\n", msec, http->fd));
if (msec >= 0)
{
timeout.tv_sec = msec / 1000;
@@ -2561,6 +2602,8 @@ http_wait(http_t *http, /* I - HTTP connection */
}
else
nfds = select(http->fd + 1, http->input_set, NULL, NULL, NULL);
DEBUG_printf(("http_wait: select() returned %d...\n", nfds));
}
#ifdef WIN32
while (nfds < 0 && WSAGetLastError() == WSAEINTR);
@@ -2570,6 +2613,8 @@ http_wait(http_t *http, /* I - HTTP connection */
FD_CLR(http->fd, http->input_set);
DEBUG_printf(("http_wait: returning with nfds=%d...\n", nfds));
return (nfds > 0);
}
@@ -2725,7 +2770,7 @@ http_write_ssl(http_t *http, /* I - HTTP connection */
size_t processed; /* Number of bytes processed */
error = SSLWrite((SSLContextRef)http->tls, buf, len, &processed);
error = SSLWrite(((http_tls_t *)http->tls)->session, buf, len, &processed);
switch (error)
{
+2
Ver Arquivo
@@ -100,6 +100,8 @@ extern "C" {
# define s6_addr32 _S6_un._S6_u32
# elif defined(__FreeBSD__) || defined(__APPLE__)
# define s6_addr32 __u6_addr.__u6_addr32
# elif defined(__osf__)
# define s6_addr32 s6_un.sa6_laddr
# elif defined(WIN32)
/*
* Windows only defines byte and 16-bit word members of the union and
+35 -2
Ver Arquivo
@@ -31,7 +31,8 @@
* Include necessary headers...
*/
# include "language.h"
# include <stdio.h>
# include "transcode.h"
# ifdef __cplusplus
extern "C" {
@@ -55,12 +56,44 @@ typedef struct _cups_message_s /**** Message catalog entry ****/
*str; /* Localized string */
} _cups_message_t;
typedef struct _cups_cmap_s /**** SBCS Charmap Struct ****/
{
struct _cups_cmap_s *next; /* Next charmap in cache */
int used; /* Number of times entry used */
cups_encoding_t encoding; /* Legacy charset encoding */
cups_ucs2_t char2uni[256]; /* Map Legacy SBCS -> UCS-2 */
cups_sbcs_t *uni2char[256]; /* Map UCS-2 -> Legacy SBCS */
} _cups_cmap_t;
typedef struct _cups_wide2uni_s /**** Wide to Unicode ****/
{
cups_vbcs_t widechar; /* VBCS 32-bit Char (EUC) */
cups_ucs2_t unichar; /* UCS-2 Char */
} _cups_wide2uni_t;
typedef struct _cups_vmap_s /**** VBCS Charmap Struct ****/
{
struct _cups_vmap_s *next; /* Next charmap in cache */
int used; /* Number of times entry used */
cups_encoding_t encoding; /* Legacy charset encoding */
cups_ucs2_t *char2uni[256]; /* Map 16-bit Char -> UCS-2 */
int charcount; /* Count of 16-bit VBCS Chars */
_cups_wide2uni_t *wide2uni; /* Map 32-bit Char -> UCS-2 */
int widecount; /* Count of 32-bit VBCS Chars */
cups_vbcs_t *uni2char[256]; /* Map UCS-2 -> 32-bit VBCS */
cups_sbcs_t lead2char[256]; /* Legacy Lead Char - 2-byte */
cups_sbcs_t lead3char[256]; /* Legacy Lead Char - 3-byte */
cups_sbcs_t lead4char[256]; /* Legacy Lead Char - 4-byte */
} _cups_vmap_t;
/*
* Prototypes...
*/
/**** New in CUPS 1.2 ****/
extern void _cupsCharmapFlush(void);
extern void _cupsCharmapFree(const cups_encoding_t encoding);
extern void *_cupsCharmapGet(const cups_encoding_t encoding);
extern const char *_cupsEncodingName(cups_encoding_t encoding);
extern int _cupsLangPrintf(FILE *fp, const char *message, ...)
# ifdef __GNUC__
+58 -32
Ver Arquivo
@@ -1034,6 +1034,7 @@ ippReadIO(void *src, /* I - Data source */
DEBUG_printf(("ippReadIO(%p, %p, %d, %p, %p)\n", src, cb, blocking,
parent, ipp));
DEBUG_printf(("ippReadIO: ipp->state=%d\n", ipp->state));
if (src == NULL || ipp == NULL)
return (IPP_ERROR);
@@ -1527,6 +1528,8 @@ ippReadIO(void *src, /* I - Data source */
break; /* anti-compiler-warning-code */
}
DEBUG_printf(("ippReadIO: returning ipp->state=%d!\n", ipp->state));
return (ipp->state);
}
@@ -1672,7 +1675,7 @@ ippWriteIO(void *dst, /* I - Destination */
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP header...");
DEBUG_puts("ippWriteIO: Could not write IPP header...");
return (IPP_ERROR);
}
}
@@ -1686,9 +1689,9 @@ ippWriteIO(void *dst, /* I - Destination */
ipp->current = ipp->attrs;
ipp->curtag = IPP_TAG_ZERO;
DEBUG_printf(("ippWrite: version=%d.%d\n", buffer[0], buffer[1]));
DEBUG_printf(("ippWrite: op_status=%04x\n", ipp->request.any.op_status));
DEBUG_printf(("ippWrite: request_id=%d\n", ipp->request.any.request_id));
DEBUG_printf(("ippWriteIO: version=%d.%d\n", buffer[0], buffer[1]));
DEBUG_printf(("ippWriteIO: op_status=%04x\n", ipp->request.any.op_status));
DEBUG_printf(("ippWriteIO: request_id=%d\n", ipp->request.any.request_id));
/*
* If blocking is disabled, stop here...
@@ -1720,7 +1723,7 @@ ippWriteIO(void *dst, /* I - Destination */
if (attr->group_tag == IPP_TAG_ZERO)
continue;
DEBUG_printf(("ippWrite: wrote group tag = %x\n", attr->group_tag));
DEBUG_printf(("ippWriteIO: wrote group tag = %x\n", attr->group_tag));
*bufptr++ = attr->group_tag;
}
else if (attr->group_tag == IPP_TAG_ZERO)
@@ -1751,8 +1754,8 @@ ippWriteIO(void *dst, /* I - Destination */
* Write the value tag, name length, and name string...
*/
DEBUG_printf(("ippWrite: writing value tag = %x\n", attr->value_tag));
DEBUG_printf(("ippWrite: writing name = %d, \'%s\'\n", n, attr->name));
DEBUG_printf(("ippWriteIO: writing value tag = %x\n", attr->value_tag));
DEBUG_printf(("ippWriteIO: writing name = %d, \'%s\'\n", n, attr->name));
*bufptr++ = attr->value_tag;
*bufptr++ = n >> 8;
@@ -1775,11 +1778,11 @@ ippWriteIO(void *dst, /* I - Destination */
* and empty name for the collection member attribute...
*/
DEBUG_printf(("ippWrite: writing value tag = %x\n",
DEBUG_printf(("ippWriteIO: writing value tag = %x\n",
IPP_TAG_MEMBERNAME));
DEBUG_printf(("ippWrite: writing name = %d, \'%s\'\n", n, attr->name));
DEBUG_printf(("ippWrite: writing value tag = %x\n", attr->value_tag));
DEBUG_puts("ippWrite: writing name = 0, \'\'\n");
DEBUG_printf(("ippWriteIO: writing name = %d, \'%s\'\n", n, attr->name));
DEBUG_printf(("ippWriteIO: writing value tag = %x\n", attr->value_tag));
DEBUG_puts("ippWriteIO: writing name = 0, \'\'\n");
*bufptr++ = IPP_TAG_MEMBERNAME;
*bufptr++ = 0;
@@ -1810,7 +1813,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -1854,7 +1857,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -1905,15 +1908,15 @@ ippWriteIO(void *dst, /* I - Destination */
* values with a zero-length name...
*/
DEBUG_printf(("ippWrite: writing value tag = %x\n",
DEBUG_printf(("ippWriteIO: writing value tag = %x\n",
attr->value_tag));
DEBUG_printf(("ippWrite: writing name = 0, \'\'\n"));
DEBUG_printf(("ippWriteIO: writing name = 0, \'\'\n"));
if ((sizeof(buffer) - (bufptr - buffer)) < 3)
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -1933,14 +1936,14 @@ ippWriteIO(void *dst, /* I - Destination */
if (n > (sizeof(buffer) - 2))
return (IPP_ERROR);
DEBUG_printf(("ippWrite: writing string = %d, \'%s\'\n", n,
DEBUG_printf(("ippWriteIO: writing string = %d, \'%s\'\n", n,
value->string.text));
if ((int)(sizeof(buffer) - (bufptr - buffer)) < (n + 2))
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -1977,7 +1980,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -2020,7 +2023,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -2071,7 +2074,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -2128,7 +2131,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -2165,7 +2168,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -2226,7 +2229,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -2254,7 +2257,7 @@ ippWriteIO(void *dst, /* I - Destination */
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -2287,7 +2290,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -2315,7 +2318,7 @@ ippWriteIO(void *dst, /* I - Destination */
{
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
@@ -2342,11 +2345,11 @@ ippWriteIO(void *dst, /* I - Destination */
if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
DEBUG_puts("ippWriteIO: Could not write IPP attribute...");
return (IPP_ERROR);
}
DEBUG_printf(("ippWrite: wrote %d bytes\n", bufptr - buffer));
DEBUG_printf(("ippWriteIO: wrote %d bytes\n", bufptr - buffer));
/*
* If blocking is disabled, stop here...
@@ -2380,7 +2383,7 @@ ippWriteIO(void *dst, /* I - Destination */
if ((*cb)(dst, buffer, n) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP end-tag...");
DEBUG_puts("ippWriteIO: Could not write IPP end-tag...");
return (IPP_ERROR);
}
@@ -2404,8 +2407,8 @@ ippWriteIO(void *dst, /* I - Destination */
*/
ipp_attribute_t * /* O - New attribute */
_ippAddAttr(ipp_t *ipp, /* I - IPP message */
int num_values) /* I - Number of values */
_ippAddAttr(ipp_t *ipp, /* I - IPP message */
int num_values) /* I - Number of values */
{
ipp_attribute_t *attr; /* New attribute */
@@ -2797,6 +2800,29 @@ ipp_write_file(int *fd, /* I - File descriptor */
}
#ifdef __linux
/*
* The following symbol definitions are provided only for KDE
* compatibility during the CUPS 1.2 testing period and will be
* removed in a future release of CUPS. These are PRIVATE APIs
* from CUPS 1.1.x that the KDE developers chose to use...
*/
ipp_attribute_t * /* O - New attribute */
_ipp_add_attr(ipp_t *ipp, /* I - IPP message */
int num_values) /* I - Number of values */
{
return (_ippAddAttr(ipp, num_values));
}
void
_ipp_free_attr(ipp_attribute_t *attr) /* I - Attribute to free */
{
_ippFreeAttr(attr);
}
#endif /* __linux */
/*
* End of "$Id$".
*/
+75 -28
Ver Arquivo
@@ -31,7 +31,6 @@
* cupsLangEncoding() - Return the character encoding (us-ascii, etc.)
* for the given language.
* cupsLangFlush() - Flush all language data out of the cache.
* _cupsLangFlush() - Flush all language data out of the cache.
* cupsLangFree() - Free language data.
* cupsLangGet() - Get a language.
* _cupsLangString() - Get a message string.
@@ -65,6 +64,18 @@
#endif /* HAVE_COREFOUNDATION_H */
/*
* Local globals...
*/
#ifdef HAVE_PTHREAD_H
static pthread_mutex_t lang_mutex = PTHREAD_MUTEX_INITIALIZER;
/* Mutex to control access to cache */
#endif /* HAVE_PTHREAD_H */
static cups_lang_t *lang_cache = NULL;
/* Language string cache */
/*
* Local functions...
*/
@@ -203,17 +214,6 @@ cupsLangEncoding(cups_lang_t *lang) /* I - Language data */
void
cupsLangFlush(void)
{
_cupsLangFlush(_cupsGlobals());
}
/*
* '_cupsLangFlush()' - Flush all language data out of the cache.
*/
void
_cupsLangFlush(_cups_globals_t *cg) /* I - Global data */
{
cups_lang_t *lang, /* Current language */
*next; /* Next language */
@@ -223,7 +223,11 @@ _cupsLangFlush(_cups_globals_t *cg) /* I - Global data */
* Free all languages in the cache...
*/
for (lang = cg->lang_cache; lang != NULL; lang = next)
#ifdef HAVE_PTHREAD_H
pthread_mutex_lock(&lang_mutex);
#endif /* HAVE_PTHREAD_H */
for (lang = lang_cache; lang != NULL; lang = next)
{
/*
* Free all messages...
@@ -239,7 +243,11 @@ _cupsLangFlush(_cups_globals_t *cg) /* I - Global data */
free(lang);
}
cg->lang_cache = NULL;
lang_cache = NULL;
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&lang_mutex);
#endif /* HAVE_PTHREAD_H */
}
@@ -252,8 +260,16 @@ _cupsLangFlush(_cups_globals_t *cg) /* I - Global data */
void
cupsLangFree(cups_lang_t *lang) /* I - Language to free */
{
#ifdef HAVE_PTHREAD_H
pthread_mutex_lock(&lang_mutex);
#endif /* HAVE_PTHREAD_H */
if (lang != NULL && lang->used > 0)
lang->used --;
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&lang_mutex);
#endif /* HAVE_PTHREAD_H */
}
@@ -558,14 +574,27 @@ cupsLangGet(const char *language) /* I - Language or locale */
{
snprintf(real, sizeof(real), "%s_%s", langname, country);
if ((lang = cups_cache_lookup(real, encoding)) != NULL)
return (lang);
snprintf(filename, sizeof(filename), "%s/%s/cups_%s.po", cg->localedir,
real, real);
}
else
{
strcpy(real, langname);
filename[0] = '\0'; /* anti-compiler-warning-code */
}
#ifdef HAVE_PTHREAD_H
pthread_mutex_lock(&lang_mutex);
#endif /* HAVE_PTHREAD_H */
if ((lang = cups_cache_lookup(langname, encoding)) != NULL)
{
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&lang_mutex);
#endif /* HAVE_PTHREAD_H */
return (lang);
}
if (!country[0] || access(filename, 0))
{
@@ -573,9 +602,6 @@ cupsLangGet(const char *language) /* I - Language or locale */
* Country localization not available, look for generic localization...
*/
if ((lang = cups_cache_lookup(langname, encoding)) != NULL)
return (lang);
snprintf(filename, sizeof(filename), "%s/%s/cups_%s.po", cg->localedir,
langname, langname);
@@ -587,11 +613,8 @@ cupsLangGet(const char *language) /* I - Language or locale */
DEBUG_printf(("access(\"%s\", 0): %s\n", filename, strerror(errno)));
strcpy(real, "C");
snprintf(filename, sizeof(filename), "%s/C/cups_C.po", cg->localedir);
}
else
strcpy(real, langname);
}
/*
@@ -599,7 +622,7 @@ cupsLangGet(const char *language) /* I - Language or locale */
* record...
*/
for (lang = cg->lang_cache; lang != NULL; lang = lang->next)
for (lang = lang_cache; lang != NULL; lang = lang->next)
if (lang->used == 0)
break;
@@ -610,10 +633,16 @@ cupsLangGet(const char *language) /* I - Language or locale */
*/
if ((lang = calloc(sizeof(cups_lang_t), 1)) == NULL)
return (NULL);
{
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&lang_mutex);
#endif /* HAVE_PTHREAD_H */
lang->next = cg->lang_cache;
cg->lang_cache = lang;
return (NULL);
}
lang->next = lang_cache;
lang_cache = lang;
}
else
{
@@ -646,6 +675,10 @@ cupsLangGet(const char *language) /* I - Language or locale */
* Return...
*/
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&lang_mutex);
#endif /* HAVE_PTHREAD_H */
return (lang);
}
@@ -668,7 +701,21 @@ _cupsLangString(cups_lang_t *lang, /* I - Language */
if (!lang || !message)
return (message);
#ifdef HAVE_PTHREAD_H
{
const char *s; /* Localized message */
pthread_mutex_lock(&lang_mutex);
s = _cupsMessageLookup(lang->strings, message);
pthread_mutex_unlock(&lang_mutex);
return (s);
}
#else
return (_cupsMessageLookup(lang->strings, message));
#endif /* HAVE_PTHREAD_H */
}
@@ -1166,7 +1213,7 @@ cups_cache_lookup(const char *name,/* I - Name of locale */
* Loop through the cache and return a match if found...
*/
for (lang = _cupsGlobals()->lang_cache; lang != NULL; lang = lang->next)
for (lang = lang_cache; lang != NULL; lang = lang->next)
{
DEBUG_printf(("cups_cache_lookup: lang=%p, language=\"%s\", encoding=%d(%s)\n",
lang, lang->language, lang->encoding,
+9 -4
Ver Arquivo
@@ -1,10 +1,11 @@
_cupsAdminGetServerSettings
_cupsAdminSetServerSettings
_cupsCharmapFlush
_cupsCharmapFree
_cupsCharmapGet
_cupsEncodingName
_cupsGetPassword
_cupsGlobals
_cupsLangFlush
_cupsLangPrintf
_cupsLangPuts
_cupsLangString
@@ -14,14 +15,18 @@ _cupsMD5Init
_cupsMessageFree
_cupsMessageLoad
_cupsMessageLookup
_cupsNormalizeMapsFlush
_cupsSetError
_cupsStrAlloc
_cups_strcpy
_cupsStrFlush
_cupsStrFormatd
_cupsStrFree
_cupsStrScand
_cupsStrStatistics
_cups_getifaddrs
_cups_freeifaddrs
_cups_strcpy
_cups_strlcat
_cups_strlcpy
_cupsStrStatistics
_ippAddAttr
_ippFreeAttr
_ppdGetEncoding
+2
Ver Arquivo
@@ -56,6 +56,8 @@ static const char *ppd_text(ppd_file_t *ppd, const char *keyword,
/*
* 'ppdLocalize()' - Localize the PPD file to the current locale.
*
* @since CUPS 1.2@
*/
int /* O - 0 on success, -1 on error */
+31 -8
Ver Arquivo
@@ -241,9 +241,6 @@ ppd_option_t * /* O - Pointer to option or NULL */
ppdFindOption(ppd_file_t *ppd, /* I - PPD file data */
const char *option) /* I - Option/Keyword name */
{
ppd_option_t key; /* Option search key */
/*
* Range check input...
*/
@@ -251,13 +248,39 @@ ppdFindOption(ppd_file_t *ppd, /* I - PPD file data */
if (!ppd || !option)
return (NULL);
/*
* Search...
*/
if (ppd->options)
{
/*
* Search in the array...
*/
strlcpy(key.keyword, option, sizeof(key.keyword));
ppd_option_t key; /* Option search key */
return ((ppd_option_t *)cupsArrayFind(ppd->options, &key));
strlcpy(key.keyword, option, sizeof(key.keyword));
return ((ppd_option_t *)cupsArrayFind(ppd->options, &key));
}
else
{
/*
* Search in each group...
*/
int i, j; /* Looping vars */
ppd_group_t *group; /* Current group */
ppd_option_t *optptr; /* Current option */
for (i = ppd->num_groups, group = ppd->groups; i > 0; i --, group ++)
for (j = group->num_options, optptr = group->options;
j > 0;
j --, optptr ++)
if (!strcasecmp(optptr->keyword, option))
return (optptr);
return (NULL);
}
}
-2188
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
-336
Ver Arquivo
@@ -1,336 +0,0 @@
/*
* "$Id$"
*
* Unicode normalization for the Common UNIX Printing System (CUPS).
*
* Copyright 1997-2005 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are
* the property of Easy Software Products and are protected by Federal
* copyright law. Distribution and use rights are outlined in the
* file "LICENSE.txt" which should have been included with this file.
* If this file is missing or damaged please contact Easy Software
* Products at:
*
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
* Hollywood, Maryland 20636 USA
*
* Voice: (301) 373-9600
* EMail: cups-info@cups.org
* WWW: http://www.cups.org
*/
#ifndef _CUPS_NORMALIZE_H_
# define _CUPS_NORMALIZE_H_
/*
* Include necessary headers...
*/
#include "transcode.h"
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* Types...
*/
typedef enum /**** Normalizataion Types ****/
{
CUPS_NORM_NFD, /* Canonical Decomposition */
CUPS_NORM_NFKD, /* Compatibility Decomposition */
CUPS_NORM_NFC, /* NFD, them Canonical Composition */
CUPS_NORM_NFKC /* NFKD, them Canonical Composition */
} cups_normalize_t;
typedef enum /**** Case Folding Types ****/
{
CUPS_FOLD_SIMPLE, /* Simple - no expansion in size */
CUPS_FOLD_FULL /* Full - possible expansion in size */
} cups_folding_t;
typedef enum /**** Unicode Char Property Types ****/
{
CUPS_PROP_GENERAL_CATEGORY, /* See 'cups_gencat_t' enum */
CUPS_PROP_BIDI_CATEGORY, /* See 'cups_bidi_t' enum */
CUPS_PROP_COMBINING_CLASS, /* See '_cups_comb_class_t' type */
CUPS_PROP_BREAK_CLASS /* See 'cups_break_class_t' enum */
} cups_property_t;
/*
* Note - Use major classes for logic optimizations (by mask).
*/
typedef enum /**** Unicode General Category ****/
{
CUPS_GENCAT_NULL = 0, /* Terminator */
CUPS_GENCAT_L = 0x10, /* Letter major class */
CUPS_GENCAT_LU = 0x11, /* Lu Letter, Uppercase */
CUPS_GENCAT_LL = 0x12, /* Ll Letter, Lowercase */
CUPS_GENCAT_LT = 0x13, /* Lt Letter, Titlecase */
CUPS_GENCAT_LM = 0x14, /* Lm Letter, Modifier */
CUPS_GENCAT_LO = 0x15, /* Lo Letter, Other */
CUPS_GENCAT_M = 0x20, /* Mark major class */
CUPS_GENCAT_MN = 0x21, /* Mn Mark, Non-Spacing */
CUPS_GENCAT_MC = 0x22, /* Mc Mark, Spacing Combining */
CUPS_GENCAT_ME = 0x23, /* Me Mark, Enclosing */
CUPS_GENCAT_N = 0x30, /* Number major class */
CUPS_GENCAT_ND = 0x31, /* Nd Number, Decimal Digit */
CUPS_GENCAT_NL = 0x32, /* Nl Number, Letter */
CUPS_GENCAT_NO = 0x33, /* No Number, Other */
CUPS_GENCAT_P = 0x40, /* Punctuation major class */
CUPS_GENCAT_PC = 0x41, /* Pc Punctuation, Connector */
CUPS_GENCAT_PD = 0x42, /* Pd Punctuation, Dash */
CUPS_GENCAT_PS = 0x43, /* Ps Punctuation, Open (start) */
CUPS_GENCAT_PE = 0x44, /* Pe Punctuation, Close (end) */
CUPS_GENCAT_PI = 0x45, /* Pi Punctuation, Initial Quote */
CUPS_GENCAT_PF = 0x46, /* Pf Punctuation, Final Quote */
CUPS_GENCAT_PO = 0x47, /* Po Punctuation, Other */
CUPS_GENCAT_S = 0x50, /* Symbol major class */
CUPS_GENCAT_SM = 0x51, /* Sm Symbol, Math */
CUPS_GENCAT_SC = 0x52, /* Sc Symbol, Currency */
CUPS_GENCAT_SK = 0x53, /* Sk Symbol, Modifier */
CUPS_GENCAT_SO = 0x54, /* So Symbol, Other */
CUPS_GENCAT_Z = 0x60, /* Separator major class */
CUPS_GENCAT_ZS = 0x61, /* Zs Separator, Space */
CUPS_GENCAT_ZL = 0x62, /* Zl Separator, Line */
CUPS_GENCAT_ZP = 0x63, /* Zp Separator, Paragraph */
CUPS_GENCAT_C = 0x70, /* Other (miscellaneous) major class */
CUPS_GENCAT_CC = 0x71, /* Cc Other, Control */
CUPS_GENCAT_CF = 0x72, /* Cf Other, Format */
CUPS_GENCAT_CS = 0x73, /* Cs Other, Surrogate */
CUPS_GENCAT_CO = 0x74, /* Co Other, Private Use */
CUPS_GENCAT_CN = 0x75 /* Cn Other, Not Assigned */
} cups_gencat_t;
typedef enum /**** Unicode Bidi Category ****/
{
CUPS_BIDI_L, /* Left-to-Right (Alpha, Ideographic) */
CUPS_BIDI_LRE, /* Left-to-Right Embedding (explicit) */
CUPS_BIDI_LRO, /* Left-to-Right Override (explicit) */
CUPS_BIDI_R, /* Right-to-Left (Hebrew alpha/punct) */
CUPS_BIDI_AL, /* Right-to-Left Arabic (Arabic, etc) */
CUPS_BIDI_RLE, /* Right-to-Left Embedding (explicit) */
CUPS_BIDI_RLO, /* Right-to-Left Override (explicit) */
CUPS_BIDI_PDF, /* Pop Directional Format */
CUPS_BIDI_EN, /* Euro Number (Euro & Indic digits) */
CUPS_BIDI_ES, /* Euro Number Separator (Slash) */
CUPS_BIDI_ET, /* Euro Number Terminator */
CUPS_BIDI_AN, /* Arabic Number (digits, separators) */
CUPS_BIDI_CS, /* Common Number Separator */
CUPS_BIDI_NSM, /* Non-Spacing Mark (Mn/Me in UCD) */
CUPS_BIDI_BN, /* Boundary Neutral (formatting, etc) */
CUPS_BIDI_B, /* Paragraph Separator */
CUPS_BIDI_S, /* Segment Separator (Tab) */
CUPS_BIDI_WS, /* Whitespace Space (Space, etc) */
CUPS_BIDI_ON /* Other Neutrals */
} cups_bidi_t;
/*
* Note - add state table from UAX-14, section 7.3.
* Remember to do BK and SP in outer loop (not in state table).
* Consider optimization for CM (combining mark).
* See 'LineBreak.txt' (12,875) and 'DerivedLineBreak.txt' (1,350).
*/
typedef enum /**** Unicode Line Break Class ****/
{
/*
* (A) - Allow Break AFTER
* (XA) - Prevent Break AFTER
* (B) - Allow Break BEFORE
* (XB) - Prevent Break BEFORE
* (P) - Allow Break For Pair
* (XP) - Prevent Break For Pair
*/
CUPS_BREAK_NULL, /* Terminator */
CUPS_BREAK_AI, /* Ambiguous Alphabetic or Ideograph */
CUPS_BREAK_AL, /* Ordinary Alpha/Symbol Chars (XP) */
CUPS_BREAK_BA, /* Break Opportunity After Chars (A) */
CUPS_BREAK_BB, /* Break Opportunity Before Chars (B) */
CUPS_BREAK_B2, /* Break Opportunity Either (B/A/XP) */
CUPS_BREAK_BK, /* Mandatory Break (A) (norm) */
CUPS_BREAK_CB, /* Contingent Break (B/A) (norm) */
CUPS_BREAK_CL, /* Closing Punctuation (XB) */
CUPS_BREAK_CM, /* Attached/Combining (XB) (norm) */
CUPS_BREAK_CR, /* Carriage Return (A) (norm) */
CUPS_BREAK_EX, /* Exclamation/Interrogation (XB) */
CUPS_BREAK_GL, /* Non-breaking "Glue" (XB/XA) (norm) */
CUPS_BREAK_HY, /* Hyphen (XA) */
CUPS_BREAK_ID, /* Ideographic (B/A) */
CUPS_BREAK_IN, /* Inseparable chars (XP) */
CUPS_BREAK_IS, /* Numeric Separator (Infix) (XB) */
CUPS_BREAK_LF, /* Line Feed (A) (norm) */
CUPS_BREAK_NS, /* Non-starters (XB) */
CUPS_BREAK_NU, /* Numeric (XP) */
CUPS_BREAK_OP, /* Opening Punctuation (XA) */
CUPS_BREAK_PO, /* Postfix (Numeric) (XB) */
CUPS_BREAK_PR, /* Prefix (Numeric) (XA) */
CUPS_BREAK_QU, /* Ambiguous Quotation (XB/XA) */
CUPS_BREAK_SA, /* Context Dependent (SE Asian) (P) */
CUPS_BREAK_SG, /* Surrogates (XP) (norm) */
CUPS_BREAK_SP, /* Space (A) (norm) */
CUPS_BREAK_SY, /* Symbols Allowing Break After (A) */
CUPS_BREAK_XX, /* Unknown (XP) */
CUPS_BREAK_ZW /* Zero Width Space (A) (norm) */
} cups_break_class_t;
typedef int _cups_comb_class_t; /**** Unicode Combining Class ****/
/* 0=base, 1..254=combining char */
/*
* Structures...
*/
typedef struct _cups_normmap_s /**** Normalize Map Cache Struct ****/
{
struct _cups_normmap_s *next; /* Next normalize in cache */
int used; /* Number of times entry used */
cups_normalize_t normalize; /* Normalization type */
int normcount; /* Count of Source Chars */
cups_ucs2_t *uni2norm; /* Char -> Normalization */
/* ...only supports UCS-2 */
} _cups_norm_map_t;
typedef struct _cups_foldmap_s /**** Case Fold Map Cache Struct ****/
{
struct _cups_foldmap_s *next; /* Next case fold in cache */
int used; /* Number of times entry used */
cups_folding_t fold; /* Case folding type */
int foldcount; /* Count of Source Chars */
cups_ucs2_t *uni2fold; /* Char -> Folded Char(s) */
/* ...only supports UCS-2 */
} _cups_fold_map_t;
typedef struct _cups_prop_s /**** Char Property Struct ****/
{
cups_ucs2_t ch; /* Unicode Char as UCS-2 */
unsigned char gencat; /* General Category */
unsigned char bidicat; /* Bidirectional Category */
} _cups_prop_t;
typedef struct _cups_prop_map_s /**** Char Property Map Struct ****/
{
int used; /* Number of times entry used */
int propcount; /* Count of Source Chars */
_cups_prop_t *uni2prop; /* Char -> Properties */
} _cups_prop_map_t;
typedef struct _cups_break_map_s /**** Line Break Class Map Struct ****/
{
int used; /* Number of times entry used */
int breakcount; /* Count of Source Chars */
cups_ucs2_t *uni2break; /* Char -> Line Break Class */
} _cups_break_map_t;
typedef struct _cups_comb_s /**** Char Combining Class Struct ****/
{
cups_ucs2_t ch; /* Unicode Char as UCS-2 */
unsigned char combclass; /* Combining Class */
unsigned char reserved; /* Reserved for alignment */
} _cups_comb_t;
typedef struct _cups_comb_map_s /**** Combining Class Map Struct ****/
{
int used; /* Number of times entry used */
int combcount; /* Count of Source Chars */
_cups_comb_t *uni2comb; /* Char -> Combining Class */
} _cups_comb_map_t;
/*
* Prototypes...
*/
/*
* Utility functions for normalization module
*/
extern int cupsNormalizeMapsGet(void);
extern int cupsNormalizeMapsFree(void);
extern void cupsNormalizeMapsFlush(void);
/*
* Normalize UTF-8 string to Unicode UAX-15 Normalization Form
* Note - Compatibility Normalization Forms (NFKD/NFKC) are
* unsafe for subsequent transcoding to legacy charsets
*/
extern int cupsUTF8Normalize(cups_utf8_t *dest,
const cups_utf8_t *src,
const int maxout,
const cups_normalize_t normalize);
/*
* Normalize UTF-32 string to Unicode UAX-15 Normalization Form
* Note - Compatibility Normalization Forms (NFKD/NFKC) are
* unsafe for subsequent transcoding to legacy charsets
*/
extern int cupsUTF32Normalize(cups_utf32_t *dest,
const cups_utf32_t *src,
const int maxout,
const cups_normalize_t normalize);
/*
* Case Fold UTF-8 string per Unicode UAX-21 Section 2.3
* Note - Case folding output is
* unsafe for subsequent transcoding to legacy charsets
*/
extern int cupsUTF8CaseFold(cups_utf8_t *dest,
const cups_utf8_t *src,
const int maxout,
const cups_folding_t fold);
/*
* Case Fold UTF-32 string per Unicode UAX-21 Section 2.3
* Note - Case folding output is
* unsafe for subsequent transcoding to legacy charsets
*/
extern int cupsUTF32CaseFold(cups_utf32_t *dest,
const cups_utf32_t *src,
const int maxout,
const cups_folding_t fold);
/*
* Compare UTF-8 strings after case folding
*/
extern int cupsUTF8CompareCaseless(const cups_utf8_t *s1,
const cups_utf8_t *s2);
/*
* Compare UTF-32 strings after case folding
*/
extern int cupsUTF32CompareCaseless(const cups_utf32_t *s1,
const cups_utf32_t *s2);
/*
* Compare UTF-8 strings after case folding and NFKC normalization
*/
extern int cupsUTF8CompareIdentifier(const cups_utf8_t *s1,
const cups_utf8_t *s2);
/*
* Compare UTF-32 strings after case folding and NFKC normalization
*/
extern int cupsUTF32CompareIdentifier(const cups_utf32_t *s1,
const cups_utf32_t *s2);
/*
* Get UTF-32 character property
*/
extern int cupsUTF32CharacterProperty(const cups_utf32_t ch,
const cups_property_t prop);
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_NORMALIZE_H_ */
/*
* End of "$Id$"
*/
+1 -1
Ver Arquivo
@@ -87,7 +87,7 @@ ppdPageSize(ppd_file_t *ppd, /* I - PPD file record */
if (!nameptr || *nameptr != 'x')
return (NULL);
l = _cupsStrScand(nameptr, &nameptr, loc);
l = _cupsStrScand(nameptr + 1, &nameptr, loc);
if (!nameptr)
return (NULL);
+79 -17
Ver Arquivo
@@ -36,6 +36,8 @@
*
* ppdClose() - Free all memory used by the PPD file.
* ppdErrorString() - Returns the text assocated with a status.
* _ppdGetEncoding() - Get the CUPS encoding value for the given
* LanguageEncoding.
* ppdLastError() - Return the status from the last ppdOpen*().
* ppdOpen() - Read a PPD file into memory.
* ppdOpen2() - Read a PPD file into memory.
@@ -111,7 +113,8 @@ static ppd_cparam_t *ppd_get_cparam(ppd_coption_t *opt,
const char *param,
const char *text);
static ppd_group_t *ppd_get_group(ppd_file_t *ppd, const char *name,
const char *text, _cups_globals_t *cg);
const char *text, _cups_globals_t *cg,
cups_encoding_t encoding);
static ppd_option_t *ppd_get_option(ppd_group_t *group, const char *name);
static int ppd_read(cups_file_t *fp, char *keyword, char *option,
char *text, char **string, int ignoreblank,
@@ -146,6 +149,8 @@ ppdClose(ppd_file_t *ppd) /* I - PPD file record */
* Free all strings at the top level...
*/
ppd_free(ppd->lang_encoding);
ppd_free(ppd->nickname);
ppd_free(ppd->patches);
ppd_free(ppd->jcl_begin);
ppd_free(ppd->jcl_end);
@@ -330,6 +335,31 @@ ppdErrorString(ppd_status_t status) /* I - PPD status */
}
/*
* '_ppdGetEncoding()' - Get the CUPS encoding value for the given
* LanguageEncoding.
*/
cups_encoding_t /* O - CUPS encoding value */
_ppdGetEncoding(const char *name) /* I - LanguageEncoding string */
{
if (!strcasecmp(name, "ISOLatin1"))
return (CUPS_ISO8859_1);
else if (!strcasecmp(name, "ISOLatin2"))
return (CUPS_ISO8859_2);
else if (!strcasecmp(name, "ISOLatin5"))
return (CUPS_ISO8859_5);
else if (!strcasecmp(name, "JIS83-RKSJ"))
return (CUPS_WINDOWS_932);
else if (!strcasecmp(name, "MacStandard"))
return (CUPS_MAC_ROMAN);
else if (!strcasecmp(name, "WindowsANSI"))
return (CUPS_WINDOWS_1252);
else
return (CUPS_UTF8);
}
/*
* 'ppdLastError()' - Return the status from the last ppdOpen*().
*
@@ -421,6 +451,7 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
cups_lang_t *language; /* Default language */
struct lconv *loc; /* Locale data */
int ui_keyword; /* Is this line a UI keyword? */
cups_encoding_t encoding; /* Encoding of PPD file */
_cups_globals_t *cg = _cupsGlobals();
/* Global data */
static const char * const ui_keywords[] =
@@ -565,6 +596,7 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
option = NULL;
choice = NULL;
ui_keyword = 0;
encoding = CUPS_ISO8859_1;
while ((mask = ppd_read(fp, keyword, name, text, &string, 1, cg)) != 0)
{
@@ -643,7 +675,8 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
if (!group)
{
if ((group = ppd_get_group(ppd, "General", _("General"), cg)) == NULL)
if ((group = ppd_get_group(ppd, "General", _("General"), cg,
encoding)) == NULL)
goto error;
DEBUG_printf(("Adding to group %s...\n", group->text));
@@ -706,7 +739,14 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
if (!strcmp(keyword, "LanguageLevel"))
ppd->language_level = atoi(string);
else if (!strcmp(keyword, "LanguageEncoding"))
ppd->lang_encoding = string;
{
/*
* Say all PPD files are UTF-8, since we convert to UTF-8...
*/
ppd->lang_encoding = strdup("UTF-8");
encoding = _ppdGetEncoding(string);
}
else if (!strcmp(keyword, "LanguageVersion"))
ppd->lang_version = string;
else if (!strcmp(keyword, "Manufacturer"))
@@ -718,7 +758,18 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
else if (!strcmp(keyword, "PCFileName"))
ppd->pcfilename = string;
else if (!strcmp(keyword, "NickName"))
ppd->nickname = string;
{
if (encoding != CUPS_UTF8)
{
cups_utf8_t utf8[256]; /* UTF-8 version of NickName */
cupsCharsetToUTF8(utf8, string, sizeof(utf8), encoding);
ppd->nickname = strdup((char *)utf8);
}
else
ppd->nickname = strdup(string);
}
else if (!strcmp(keyword, "Product"))
ppd->product = string;
else if (!strcmp(keyword, "ShortNickName"))
@@ -967,7 +1018,8 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
DEBUG_printf(("%s option not found for %s...\n", keyword + 6, keyword));
if ((gtemp = ppd_get_group(ppd, "General", _("General"), cg)) == NULL)
if ((gtemp = ppd_get_group(ppd, "General", _("General"), cg,
encoding)) == NULL)
{
DEBUG_puts("Unable to get general group!");
@@ -1132,7 +1184,8 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
option = ppd_get_option(subgroup, name);
else if (group == NULL)
{
if ((group = ppd_get_group(ppd, "General", _("General"), cg)) == NULL)
if ((group = ppd_get_group(ppd, "General", _("General"), cg,
encoding)) == NULL)
goto error;
DEBUG_printf(("Adding to group %s...\n", group->text));
@@ -1181,7 +1234,8 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
}
if (text[0])
strlcpy(option->text, text, sizeof(option->text));
cupsCharsetToUTF8((cups_utf8_t *)option->text, text,
sizeof(option->text), encoding);
else
{
if (!strcmp(name, "PageSize"))
@@ -1220,7 +1274,7 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
* Find the JCL group, and add if needed...
*/
group = ppd_get_group(ppd, "JCL", _("JCL"), cg);
group = ppd_get_group(ppd, "JCL", _("JCL"), cg, encoding);
if (group == NULL)
goto error;
@@ -1270,7 +1324,11 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
break;
}
strlcpy(option->text, text, sizeof(option->text));
if (text[0])
cupsCharsetToUTF8((cups_utf8_t *)option->text, text,
sizeof(option->text), encoding);
else
strlcpy(option->text, name, sizeof(option->text));
option->section = PPD_ORDER_JCL;
group = NULL;
@@ -1324,7 +1382,7 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
* Find/add the group...
*/
group = ppd_get_group(ppd, string, sptr, cg);
group = ppd_get_group(ppd, string, sptr, cg, encoding);
if (group == NULL)
goto error;
@@ -1613,8 +1671,9 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
choice = ppd_add_choice(option, name);
if (mask & PPD_TEXT)
strlcpy(choice->text, text, sizeof(choice->text));
if (text[0])
cupsCharsetToUTF8((cups_utf8_t *)choice->text, text,
sizeof(choice->text), encoding);
else if (!strcmp(name, "True"))
strcpy(choice->text, _("Yes"));
else if (!strcmp(name, "False"))
@@ -2224,10 +2283,11 @@ ppd_get_cparam(ppd_coption_t *opt, /* I - PPD file */
*/
static ppd_group_t * /* O - Named group */
ppd_get_group(ppd_file_t *ppd, /* I - PPD file */
const char *name, /* I - Name of group */
const char *text, /* I - Text for group */
_cups_globals_t *cg) /* I - Global data */
ppd_get_group(ppd_file_t *ppd, /* I - PPD file */
const char *name, /* I - Name of group */
const char *text, /* I - Text for group */
_cups_globals_t *cg, /* I - Global data */
cups_encoding_t encoding) /* I - Encoding of text */
{
int i; /* Looping var */
ppd_group_t *group; /* Group */
@@ -2270,7 +2330,9 @@ ppd_get_group(ppd_file_t *ppd, /* I - PPD file */
memset(group, 0, sizeof(ppd_group_t));
strlcpy(group->name, name, sizeof(group->name));
strlcpy(group->text, text, sizeof(group->text));
cupsCharsetToUTF8((cups_utf8_t *)group->text, text,
sizeof(group->text), encoding);
}
return (group);
+71 -50
Ver Arquivo
@@ -64,11 +64,13 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
ipp_t *response; /* IPP response data */
size_t length; /* Content-Length value */
http_status_t status; /* Status of HTTP request */
int got_status; /* Did we get the status? */
ipp_state_t state; /* State of IPP processing */
FILE *file; /* File to send */
struct stat fileinfo; /* File information */
int bytes; /* Number of bytes read/written */
char buffer[65536]; /* Output buffer */
char buffer[32768]; /* Output buffer */
http_status_t expect; /* Expect: header to use */
DEBUG_printf(("cupsDoFileRequest(%p, %p, \'%s\', \'%s\')\n",
@@ -117,7 +119,7 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
ippDelete(request);
_cupsSetError(IPP_NOT_POSSIBLE, NULL);
_cupsSetError(IPP_NOT_POSSIBLE, strerror(EISDIR));
return (NULL);
}
@@ -145,6 +147,7 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
response = NULL;
status = HTTP_ERROR;
expect = HTTP_CONTINUE;
while (response == NULL)
{
@@ -162,7 +165,7 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
httpSetLength(http, length);
httpSetField(http, HTTP_FIELD_CONTENT_TYPE, "application/ipp");
httpSetField(http, HTTP_FIELD_AUTHORIZATION, http->authstring);
httpSetExpect(http, HTTP_CONTINUE);
httpSetExpect(http, expect);
DEBUG_printf(("cupsDoFileRequest: authstring=\"%s\"\n", http->authstring));
@@ -184,54 +187,58 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
}
/*
* Wait up to 1 second for a 100-continue response...
* Send the IPP data...
*/
if (httpWait(http, 1000))
status = httpUpdate(http);
else
status = HTTP_CONTINUE;
DEBUG_puts("cupsDoFileRequest: ipp write...");
if (status == HTTP_CONTINUE)
request->state = IPP_IDLE;
status = HTTP_CONTINUE;
got_status = 0;
while ((state = ippWrite(http, request)) != IPP_DATA)
if (state == IPP_ERROR)
break;
else if (httpCheck(http))
{
got_status = 1;
if ((status = httpUpdate(http)) != HTTP_CONTINUE)
break;
}
if (!got_status)
{
/*
* Send the IPP data...
* Wait up to 1 second to get the 100-continue response...
*/
DEBUG_puts("cupsDoFileRequest: ipp write...");
if (httpWait(http, 1000))
status = httpUpdate(http);
}
else if (httpCheck(http))
status = httpUpdate(http);
request->state = IPP_IDLE;
if (status == HTTP_CONTINUE && state == IPP_DATA && filename)
{
DEBUG_puts("cupsDoFileRequest: file write...");
while ((state = ippWrite(http, request)) != IPP_DATA)
if (state == IPP_ERROR)
break;
else if (httpCheck(http))
/*
* Send the file...
*/
rewind(file);
while ((bytes = (int)fread(buffer, 1, sizeof(buffer), file)) > 0)
{
if (httpCheck(http))
{
if ((status = httpUpdate(http)) != HTTP_CONTINUE)
break;
}
if (state == IPP_DATA && filename)
{
DEBUG_puts("cupsDoFileRequest: file write...");
/*
* Send the file...
*/
rewind(file);
while ((bytes = (int)fread(buffer, 1, sizeof(buffer), file)) > 0)
{
if (httpCheck(http))
{
if ((status = httpUpdate(http)) != HTTP_CONTINUE)
break;
}
if (httpWrite2(http, buffer, bytes) < bytes)
break;
}
if (httpWrite2(http, buffer, bytes) < bytes)
break;
}
}
@@ -273,10 +280,15 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
}
else if (status == HTTP_ERROR)
{
DEBUG_printf(("cupsDoFileRequest: http->error=%d (%s)\n", http->error,
strerror(http->error)));
#ifdef WIN32
if (http->error != WSAENETDOWN && http->error != WSAENETUNREACH)
if (http->error != WSAENETDOWN && http->error != WSAENETUNREACH &&
http->error != ETIMEDOUT)
#else
if (http->error != ENETDOWN && http->error != ENETUNREACH)
if (http->error != ENETDOWN && http->error != ENETUNREACH &&
http->error != ETIMEDOUT)
#endif /* WIN32 */
continue;
else
@@ -302,6 +314,14 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
continue;
}
#endif /* HAVE_SSL */
else if (status == HTTP_EXPECTATION_FAILED)
{
/*
* Don't try using the Expect: header the next time around...
*/
expect = (http_status_t)0;
}
else if (status != HTTP_OK)
{
DEBUG_printf(("cupsDoFileRequest: error %d...\n", status));
@@ -323,20 +343,21 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
response = ippNew();
if (ippRead(http, response) == IPP_ERROR)
{
/*
* Delete the response...
*/
while ((state = ippRead(http, response)) != IPP_DATA)
if (state == IPP_ERROR)
{
/*
* Delete the response...
*/
DEBUG_puts("IPP read error!");
ippDelete(response);
response = NULL;
DEBUG_puts("IPP read error!");
ippDelete(response);
response = NULL;
_cupsSetError(IPP_SERVICE_UNAVAILABLE, strerror(errno));
_cupsSetError(IPP_SERVICE_UNAVAILABLE, strerror(errno));
break;
}
break;
}
}
}
+8 -2
Ver Arquivo
@@ -96,7 +96,10 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */
if (*format == '*')
{
// Get width from argument...
/*
* Get width from argument...
*/
format ++;
width = va_arg(ap, int);
@@ -125,7 +128,10 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */
if (*format == '*')
{
// Get precision from argument...
/*
* Get precision from argument...
*/
format ++;
prec = va_arg(ap, int);
+97 -23
Ver Arquivo
@@ -46,9 +46,24 @@
#include <stdlib.h>
#include <limits.h>
#include "array.h"
#include "debug.h"
#include "string.h"
#include "globals.h"
#ifdef HAVE_PTHREAD_H
# include <pthread.h>
#endif /* HAVE_PTHREAD_H */
/*
* Local globals...
*/
#ifdef HAVE_PTHREAD_H
static pthread_mutex_t sp_mutex = PTHREAD_MUTEX_INITIALIZER;
/* Mutex to control access to pool */
#endif /* HAVE_PTHREAD_H */
static cups_array_t *stringpool = NULL;
/* Global string pool */
/*
@@ -65,7 +80,6 @@ static int compare_sp_items(_cups_sp_item_t *a, _cups_sp_item_t *b);
char * /* O - String pointer */
_cupsStrAlloc(const char *s) /* I - String */
{
_cups_globals_t *cg; /* Global data */
_cups_sp_item_t *item, /* String pool item */
key; /* Search key */
@@ -81,13 +95,21 @@ _cupsStrAlloc(const char *s) /* I - String */
* Get the string pool...
*/
cg = _cupsGlobals();
#ifdef HAVE_PTHREAD_H
pthread_mutex_lock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
if (!cg->stringpool)
cg->stringpool = cupsArrayNew((cups_array_func_t)compare_sp_items, NULL);
if (!stringpool)
stringpool = cupsArrayNew((cups_array_func_t)compare_sp_items, NULL);
if (!stringpool)
{
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
if (!cg->stringpool)
return (NULL);
}
/*
* See if the string is already in the pool...
@@ -95,7 +117,7 @@ _cupsStrAlloc(const char *s) /* I - String */
key.str = (char *)s;
if ((item = (_cups_sp_item_t *)cupsArrayFind(cg->stringpool, &key)) != NULL)
if ((item = (_cups_sp_item_t *)cupsArrayFind(stringpool, &key)) != NULL)
{
/*
* Found it, return the cached string...
@@ -103,6 +125,10 @@ _cupsStrAlloc(const char *s) /* I - String */
item->ref_count ++;
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
return (item->str);
}
@@ -112,7 +138,13 @@ _cupsStrAlloc(const char *s) /* I - String */
item = (_cups_sp_item_t *)calloc(1, sizeof(_cups_sp_item_t));
if (!item)
{
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
return (NULL);
}
item->ref_count = 1;
item->str = strdup(s);
@@ -120,6 +152,11 @@ _cupsStrAlloc(const char *s) /* I - String */
if (!item->str)
{
free(item);
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
return (NULL);
}
@@ -127,7 +164,11 @@ _cupsStrAlloc(const char *s) /* I - String */
* Add the string to the pool and return it...
*/
cupsArrayAdd(cg->stringpool, item);
cupsArrayAdd(stringpool, item);
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
return (item->str);
}
@@ -138,20 +179,32 @@ _cupsStrAlloc(const char *s) /* I - String */
*/
void
_cupsStrFlush(_cups_globals_t *cg) /* I - Global data */
_cupsStrFlush(void)
{
_cups_sp_item_t *item; /* Current item */
for (item = (_cups_sp_item_t *)cupsArrayFirst(cg->stringpool);
DEBUG_printf(("_cupsStrFlush(cg=%p)\n", cg));
DEBUG_printf((" %d strings in array\n", cupsArrayCount(stringpool)));
#ifdef HAVE_PTHREAD_H
pthread_mutex_lock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
for (item = (_cups_sp_item_t *)cupsArrayFirst(stringpool);
item;
item = (_cups_sp_item_t *)cupsArrayNext(cg->stringpool))
item = (_cups_sp_item_t *)cupsArrayNext(stringpool))
{
free(item->str);
free(item);
}
cupsArrayDelete(cg->stringpool);
cupsArrayDelete(stringpool);
stringpool = NULL;
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
}
@@ -242,7 +295,6 @@ _cupsStrFormatd(char *buf, /* I - String */
void
_cupsStrFree(const char *s) /* I - String to free */
{
_cups_globals_t *cg; /* Global data */
_cups_sp_item_t *item, /* String pool item */
key; /* Search key */
@@ -255,21 +307,28 @@ _cupsStrFree(const char *s) /* I - String to free */
return;
/*
* Get the string pool...
* Check the string pool...
*
* We don't need to lock the mutex yet, as we only want to know if
* the stringpool is initialized. The rest of the code will still
* work if it is initialized before we lock...
*/
cg = _cupsGlobals();
if (!cg->stringpool)
if (!stringpool)
return;
/*
* See if the string is already in the pool...
*/
#ifdef HAVE_PTHREAD_H
pthread_mutex_lock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
key.str = (char *)s;
if ((item = (_cups_sp_item_t *)cupsArrayFind(cg->stringpool, &key)) != NULL)
if ((item = (_cups_sp_item_t *)cupsArrayFind(stringpool, &key)) != NULL &&
item->str == s)
{
/*
* Found it, dereference...
@@ -283,12 +342,16 @@ _cupsStrFree(const char *s) /* I - String to free */
* Remove and free...
*/
cupsArrayRemove(cg->stringpool, item);
cupsArrayRemove(stringpool, item);
free(item->str);
free(item);
}
}
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
}
@@ -343,6 +406,12 @@ _cupsStrScand(const char *buf, /* I - Pointer to number */
if (*buf == '.')
{
/*
* Read fractional portion of number...
*/
buf ++;
if (loc && loc->decimal_point)
{
strlcpy(tempptr, loc->decimal_point, sizeof(temp) - (tempptr - temp));
@@ -396,19 +465,20 @@ _cupsStrStatistics(size_t *alloc_bytes, /* O - Allocated bytes */
tbytes, /* Total string bytes */
len; /* Length of string */
_cups_sp_item_t *item; /* Current item */
_cups_globals_t *cg; /* Global data */
/*
* Loop through strings in pool, counting everything up...
*/
cg = _cupsGlobals();
#ifdef HAVE_PTHREAD_H
pthread_mutex_lock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
for (count = 0, abytes = 0, tbytes = 0,
item = (_cups_sp_item_t *)cupsArrayFirst(cg->stringpool);
item = (_cups_sp_item_t *)cupsArrayFirst(stringpool);
item;
item = (_cups_sp_item_t *)cupsArrayNext(cg->stringpool))
item = (_cups_sp_item_t *)cupsArrayNext(stringpool))
{
/*
* Count allocated memory, using a 64-bit aligned buffer as a basis.
@@ -420,6 +490,10 @@ _cupsStrStatistics(size_t *alloc_bytes, /* O - Allocated bytes */
tbytes += item->ref_count * len;
}
#ifdef HAVE_PTHREAD_H
pthread_mutex_unlock(&sp_mutex);
#endif /* HAVE_PTHREAD_H */
/*
* Return values...
*/
+4 -2
Ver Arquivo
@@ -31,13 +31,14 @@
* Include necessary headers...
*/
# include <config.h>
# include <stdio.h>
# include <stdlib.h>
# include <stdarg.h>
# include <ctype.h>
# include <locale.h>
# include <config.h>
# ifdef HAVE_STRING_H
# include <string.h>
# endif /* HAVE_STRING_H */
@@ -131,6 +132,7 @@ extern int _cups_vsnprintf(char *, size_t, const char *, va_list);
*/
extern char *_cupsStrAlloc(const char *s);
extern void _cupsStrFlush(void);
extern void _cupsStrFree(const char *s);
extern size_t _cupsStrStatistics(size_t *alloc_bytes, size_t *total_bytes);
+2
Ver Arquivo
@@ -126,6 +126,7 @@
*OpenUI IntOption/Integer: PickOne
*OrderDependency: 10 AnySetup *IntOption
*DefaultIntOption: None
*IntOption None: ""
*IntOption 1: "IntOption=1"
*IntOption 2: "IntOption=2"
*IntOption 3: "IntOption=3"
@@ -137,6 +138,7 @@
*OpenUI StringOption/String: PickOne
*OrderDependency: 10 AnySetup *StringOption
*DefaultStringOption: None
*StringOption None: ""
*StringOption foo: "StringOption=foo"
*StringOption bar: "StringOption=bar"
*CloseUI: *StringOption
+4
Ver Arquivo
@@ -94,6 +94,8 @@ static uri_test_t uri_tests[] = /* URI test data */
"mailto", "", "", "user@domain.com", 0, 0 },
{ HTTP_URI_OK, "socket://server/",
"socket", "", "server", "/", 9100, 0 },
{ HTTP_URI_OK, "socket://192.168.1.1:9101/",
"socket", "", "192.168.1.1", "/", 9101, 9101 },
{ HTTP_URI_OK, "ipp://username:password@[v1.fe80::200:1234:5678:9abc+eth0]:999/ipp",
"ipp", "username:password", "fe80::200:1234:5678:9abc%eth0", "/ipp", 999, 999 },
{ HTTP_URI_OK, "http://server/admin?DEVICE_URI=usb://HP/Photosmart%25202600%2520series?serial=MY53OK70V10400",
@@ -112,6 +114,8 @@ static uri_test_t uri_tests[] = /* URI test data */
/* Missing resource */
{ HTTP_URI_MISSING_RESOURCE, "socket://[::192.168.2.1]",
"socket", "", "::192.168.2.1", "/", 9100, 0 },
{ HTTP_URI_MISSING_RESOURCE, "socket://192.168.1.1:9101",
"socket", "", "192.168.1.1", "/", 9101 },
/* Bad URI */
{ HTTP_URI_BAD_URI, "",
+348 -579
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+76 -32
Ver Arquivo
@@ -78,50 +78,94 @@ main(int argc, /* I - Number of command-line arguments */
status = 0;
fputs("ppdOpenFile: ", stdout);
if ((ppd = ppdOpenFile("test.ppd")) != NULL)
puts("PASS");
else
if (argc == 1)
{
ppd_status_t err; /* Last error in file */
int line; /* Line number in file */
fputs("ppdOpenFile: ", stdout);
if ((ppd = ppdOpenFile("test.ppd")) != NULL)
puts("PASS");
else
{
ppd_status_t err; /* Last error in file */
int line; /* Line number in file */
status ++;
err = ppdLastError(&line);
status ++;
err = ppdLastError(&line);
printf("FAIL (%s on line %d)\n", ppdErrorString(err), line);
}
printf("FAIL (%s on line %d)\n", ppdErrorString(err), line);
}
fputs("ppdMarkDefaults: ", stdout);
ppdMarkDefaults(ppd);
fputs("ppdMarkDefaults: ", stdout);
ppdMarkDefaults(ppd);
if ((conflicts = ppdConflicts(ppd)) == 0)
puts("PASS");
else
{
status ++;
printf("FAIL (%d conflicts)\n", conflicts);
}
if ((conflicts = ppdConflicts(ppd)) == 0)
puts("PASS");
else
{
status ++;
printf("FAIL (%d conflicts)\n", conflicts);
}
fputs("ppdEmitString: ", stdout);
if ((s = ppdEmitString(ppd, PPD_ORDER_ANY, 0.0)) != NULL &&
!strcmp(s, default_code))
puts("PASS");
else
{
printf("FAIL (%d bytes instead of %d)\n", s ? (int)strlen(s) : 0,
(int)strlen(default_code));
fputs("ppdEmitString: ", stdout);
if ((s = ppdEmitString(ppd, PPD_ORDER_ANY, 0.0)) != NULL &&
!strcmp(s, default_code))
puts("PASS");
else
{
printf("FAIL (%d bytes instead of %d)\n", s ? (int)strlen(s) : 0,
(int)strlen(default_code));
if (s)
puts(s);
}
if (s)
puts(s);
free(s);
ppdClose(ppd);
}
else
{
if ((ppd = ppdOpenFile(argv[1])) == NULL)
{
ppd_status_t err; /* Last error in file */
int line; /* Line number in file */
if (s)
free(s);
ppdClose(ppd);
status ++;
err = ppdLastError(&line);
printf("%s: %s on line %d\n", argv[1], ppdErrorString(err), line);
}
else
{
int i, j, k; /* Looping vars */
ppd_group_t *group; /* Option group */
ppd_option_t *option; /* Option */
ppdLocalize(ppd);
for (i = ppd->num_groups, group = ppd->groups;
i > 0;
i --, group ++)
{
printf("%s (%s):\n", group->name, group->text);
for (j = group->num_options, option = group->options;
j > 0;
j --, option ++)
{
printf(" %s (%s):\n", option->keyword, option->text);
for (k = 0; k < option->num_choices; k ++)
printf(" - %s (%s)\n", option->choices[k].choice,
option->choices[k].text);
}
}
}
}
return (status);
}
+1195 -1286
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+30 -101
Ver Arquivo
@@ -1,7 +1,7 @@
/*
* "$Id$"
*
* Transcoding support for the Common UNIX Printing System (CUPS).
* Transcoding definitions for the Common UNIX Printing System (CUPS).
*
* Copyright 1997-2006 by Easy Software Products.
*
@@ -36,116 +36,45 @@ extern "C" {
# endif /* __cplusplus */
/*
* Types...
*/
typedef unsigned char cups_utf8_t; /* UTF-8 Unicode/ISO-10646 unit */
typedef unsigned short cups_utf16_t; /* UTF-16 Unicode/ISO-10646 unit */
typedef unsigned long cups_utf32_t; /* UTF-32 Unicode/ISO-10646 unit */
typedef unsigned short cups_ucs2_t; /* UCS-2 Unicode/ISO-10646 unit */
typedef unsigned long cups_ucs4_t; /* UCS-4 Unicode/ISO-10646 unit */
typedef unsigned char cups_sbcs_t; /* SBCS Legacy 8-bit unit */
typedef unsigned short cups_dbcs_t; /* DBCS Legacy 16-bit unit */
typedef unsigned long cups_vbcs_t; /* VBCS Legacy 32-bit unit */
/* EUC uses 8, 16, 24, 32-bit */
/*
* Structures...
*/
typedef struct _cups_cmap_s /**** SBCS Charmap Struct ****/
{
struct _cups_cmap_s *next; /* Next charmap in cache */
int used; /* Number of times entry used */
cups_encoding_t encoding; /* Legacy charset encoding */
cups_ucs2_t char2uni[256]; /* Map Legacy SBCS -> UCS-2 */
cups_sbcs_t *uni2char[256]; /* Map UCS-2 -> Legacy SBCS */
} _cups_cmap_t;
typedef struct _cups_wide2uni_s /**** Wide to Unicode ****/
{
cups_vbcs_t widechar; /* VBCS 32-bit Char (EUC) */
cups_ucs2_t unichar; /* UCS-2 Char */
} _cups_wide2uni_t;
typedef struct _cups_vmap_s /**** VBCS Charmap Struct ****/
{
struct _cups_vmap_s *next; /* Next charmap in cache */
int used; /* Number of times entry used */
cups_encoding_t encoding; /* Legacy charset encoding */
cups_ucs2_t *char2uni[256]; /* Map 16-bit Char -> UCS-2 */
int charcount; /* Count of 16-bit VBCS Chars */
_cups_wide2uni_t *wide2uni; /* Map 32-bit Char -> UCS-2 */
int widecount; /* Count of 32-bit VBCS Chars */
cups_vbcs_t *uni2char[256]; /* Map UCS-2 -> 32-bit VBCS */
cups_sbcs_t lead2char[256]; /* Legacy Lead Char - 2-byte */
cups_sbcs_t lead3char[256]; /* Legacy Lead Char - 3-byte */
cups_sbcs_t lead4char[256]; /* Legacy Lead Char - 4-byte */
} _cups_vmap_t;
/*
* Constants...
*/
# define CUPS_MAX_USTRING 8192 /* Max size of Unicode string */
# define CUPS_MAX_CHARMAP_LINES 100000 /* Max lines in charmap file */
# define CUPS_MAX_USTRING 8192 /* Max size of Unicode string */
/*
* Types...
*/
typedef unsigned char cups_utf8_t; /* UTF-8 Unicode/ISO-10646 unit */
typedef unsigned long cups_utf32_t; /* UTF-32 Unicode/ISO-10646 unit */
typedef unsigned short cups_ucs2_t; /* UCS-2 Unicode/ISO-10646 unit */
typedef unsigned long cups_ucs4_t; /* UCS-4 Unicode/ISO-10646 unit */
typedef unsigned char cups_sbcs_t; /* SBCS Legacy 8-bit unit */
typedef unsigned short cups_dbcs_t; /* DBCS Legacy 16-bit unit */
typedef unsigned long cups_vbcs_t; /* VBCS Legacy 32-bit unit */
/* EUC uses 8, 16, 24, 32-bit */
/*
* Prototypes...
*/
/*
* Utility functions for character set maps
*/
extern void *cupsCharmapGet(const cups_encoding_t encoding);
extern void cupsCharmapFree(const cups_encoding_t encoding);
extern void cupsCharmapFlush(void);
/*
* Convert UTF-8 to and from legacy character set
*/
extern int cupsUTF8ToCharset(char *dest,
const cups_utf8_t *src,
const int maxout,
const cups_encoding_t encoding);
extern int cupsCharsetToUTF8(cups_utf8_t *dest,
const char *src,
const int maxout,
const cups_encoding_t encoding);
/*
* Convert UTF-8 to and from UTF-16
*/
extern int cupsUTF8ToUTF16(cups_utf16_t *dest,
const cups_utf8_t *src,
const int maxout);
extern int cupsUTF16ToUTF8(cups_utf8_t *dest,
const cups_utf16_t *src,
const int maxout);
/*
* Convert UTF-8 to and from UTF-32
*/
extern int cupsUTF8ToUTF32(cups_utf32_t *dest,
const cups_utf8_t *src,
const int maxout);
extern int cupsUTF32ToUTF8(cups_utf8_t *dest,
const cups_utf32_t *src,
const int maxout);
/*
* Convert UTF-16 to and from UTF-32
*/
extern int cupsUTF16ToUTF32(cups_utf32_t *dest,
const cups_utf16_t *src,
const int maxout);
extern int cupsUTF32ToUTF16(cups_utf16_t *dest,
const cups_utf32_t *src,
const int maxout);
extern int cupsCharsetToUTF8(cups_utf8_t *dest,
const char *src,
const int maxout,
const cups_encoding_t encoding);
extern int cupsUTF8ToCharset(char *dest,
const cups_utf8_t *src,
const int maxout,
const cups_encoding_t encoding);
extern int cupsUTF8ToUTF32(cups_utf32_t *dest,
const cups_utf8_t *src,
const int maxout);
extern int cupsUTF32ToUTF8(cups_utf8_t *dest,
const cups_utf32_t *src,
const int maxout);
# ifdef __cplusplus
}
-10
Ver Arquivo
@@ -41,7 +41,6 @@ CHARMAPS = \
euc-jp.txt \
euc-kr.txt \
euc-tw.txt \
i18n_sdd.txt \
iso-8859-10.txt \
iso-8859-11.txt \
iso-8859-13.txt \
@@ -60,15 +59,6 @@ CHARMAPS = \
koi8-r.txt \
koi8-u.txt \
mac-roman.txt \
unibreak.txt \
uni-comb.txt \
uni-fold.txt \
uni-full.txt \
uni-line.txt \
uni-nfc.txt \
uni-nfd.txt \
uni-nfkd.txt \
uni-prop.txt \
windows-1250.txt \
windows-1251.txt \
windows-1252.txt \
-2337
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+28
Ver Arquivo
@@ -0,0 +1,28 @@
%!PS-Adobe-3.0
%%BoundingBox: 36 36 576 756
%%Pages: 1
%%LanguageLevel: 2
%%EndComments
%%Page: (1) 1
% Draw a black box around the page
0 setgray
1 setlinewidth
36 36 540 720 rectstroke
% Draw a two inch blue circle in the middle of the page
0 0 1 setrgbcolor
306 396 144 0 360 arc closepath fill
% Draw two half inch yellow circles for eyes
1 1 0 setrgbcolor
252 432 36 0 360 arc closepath fill
360 432 36 0 360 arc closepath fill
% Draw the smile
1 setlinecap
18 setlinewidth
306 396 99 200 340 arc stroke
% Print it!
showpage
%%EOF
-299
Ver Arquivo
@@ -1,299 +0,0 @@
# uni-comb.txt - Unicode combining class
0300;230;NSM;
0301;230;NSM;
0302;230;NSM;
0303;230;NSM;
0304;230;NSM;
0305;230;NSM;
0306;230;NSM;
0307;230;NSM;
0308;230;NSM;
0309;230;NSM;
030A;230;NSM;
030B;230;NSM;
030C;230;NSM;
030D;230;NSM;
030E;230;NSM;
030F;230;NSM;
0310;230;NSM;
0311;230;NSM;
0312;230;NSM;
0313;230;NSM;
0314;230;NSM;
0315;232;NSM;
0316;220;NSM;
0317;220;NSM;
0318;220;NSM;
0319;220;NSM;
031A;232;NSM;
031B;216;NSM;
031C;220;NSM;
031D;220;NSM;
031E;220;NSM;
031F;220;NSM;
0320;220;NSM;
0321;202;NSM;
0322;202;NSM;
0323;220;NSM;
0324;220;NSM;
0325;220;NSM;
0326;220;NSM;
0327;202;NSM;
0328;202;NSM;
0329;220;NSM;
032A;220;NSM;
032B;220;NSM;
032C;220;NSM;
032D;220;NSM;
032E;220;NSM;
032F;220;NSM;
0330;220;NSM;
0331;220;NSM;
0332;220;NSM;
0333;220;NSM;
0334;1;NSM;
0335;1;NSM;
0336;1;NSM;
0337;1;NSM;
0338;1;NSM;
0339;220;NSM;
033A;220;NSM;
033B;220;NSM;
033C;220;NSM;
033D;230;NSM;
033E;230;NSM;
033F;230;NSM;
0340;230;NSM;
0341;230;NSM;
0342;230;NSM;
0343;230;NSM;
0344;230;NSM;
0345;240;NSM;
0346;230;NSM;
0347;220;NSM;
0348;220;NSM;
0349;220;NSM;
034A;230;NSM;
034B;230;NSM;
034C;230;NSM;
034D;220;NSM;
034E;220;NSM;
0360;234;NSM;
0361;234;NSM;
0362;233;NSM;
0483;230;NSM;
0484;230;NSM;
0485;230;NSM;
0486;230;NSM;
0591;220;NSM;
0592;230;NSM;
0593;230;NSM;
0594;230;NSM;
0595;230;NSM;
0596;220;NSM;
0597;230;NSM;
0598;230;NSM;
0599;230;NSM;
059A;222;NSM;
059B;220;NSM;
059C;230;NSM;
059D;230;NSM;
059E;230;NSM;
059F;230;NSM;
05A0;230;NSM;
05A1;230;NSM;
05A3;220;NSM;
05A4;220;NSM;
05A5;220;NSM;
05A6;220;NSM;
05A7;220;NSM;
05A8;230;NSM;
05A9;230;NSM;
05AA;220;NSM;
05AB;230;NSM;
05AC;230;NSM;
05AD;222;NSM;
05AE;228;NSM;
05AF;230;NSM;
05B0;10;NSM;
05B1;11;NSM;
05B2;12;NSM;
05B3;13;NSM;
05B4;14;NSM;
05B5;15;NSM;
05B6;16;NSM;
05B7;17;NSM;
05B8;18;NSM;
05B9;19;NSM;
05BB;20;NSM;
05BC;21;NSM;
05BD;22;NSM;
05BF;23;NSM;
05C1;24;NSM;
05C2;25;NSM;
05C4;230;NSM;
064B;27;NSM;
064C;28;NSM;
064D;29;NSM;
064E;30;NSM;
064F;31;NSM;
0650;32;NSM;
0651;33;NSM;
0652;34;NSM;
0653;230;NSM;
0654;230;NSM;
0655;220;NSM;
0670;35;NSM;
06D6;230;NSM;
06D7;230;NSM;
06D8;230;NSM;
06D9;230;NSM;
06DA;230;NSM;
06DB;230;NSM;
06DC;230;NSM;
06DF;230;NSM;
06E0;230;NSM;
06E1;230;NSM;
06E2;230;NSM;
06E3;220;NSM;
06E4;230;NSM;
06E7;230;NSM;
06E8;230;NSM;
06EA;220;NSM;
06EB;230;NSM;
06EC;230;NSM;
06ED;220;NSM;
0711;36;NSM;
0730;230;NSM;
0731;220;NSM;
0732;230;NSM;
0733;230;NSM;
0734;220;NSM;
0735;230;NSM;
0736;230;NSM;
0737;220;NSM;
0738;220;NSM;
0739;220;NSM;
073A;230;NSM;
073B;220;NSM;
073C;220;NSM;
073D;230;NSM;
073E;220;NSM;
073F;230;NSM;
0740;230;NSM;
0741;230;NSM;
0742;220;NSM;
0743;230;NSM;
0744;220;NSM;
0745;230;NSM;
0746;220;NSM;
0747;230;NSM;
0748;220;NSM;
0749;230;NSM;
074A;230;NSM;
093C;7;NSM;
094D;9;NSM;
0951;230;NSM;
0952;220;NSM;
0953;230;NSM;
0954;230;NSM;
09BC;7;NSM;
09CD;9;NSM;
0A3C;7;NSM;
0A4D;9;NSM;
0ABC;7;NSM;
0ACD;9;NSM;
0B3C;7;NSM;
0B4D;9;NSM;
0BCD;9;NSM;
0C4D;9;NSM;
0C55;84;NSM;
0C56;91;NSM;
0CCD;9;NSM;
0D4D;9;NSM;
0DCA;9;NSM;
0E38;103;NSM;
0E39;103;NSM;
0E3A;9;NSM;
0E48;107;NSM;
0E49;107;NSM;
0E4A;107;NSM;
0E4B;107;NSM;
0EB8;118;NSM;
0EB9;118;NSM;
0EC8;122;NSM;
0EC9;122;NSM;
0ECA;122;NSM;
0ECB;122;NSM;
0F18;220;NSM;
0F19;220;NSM;
0F35;220;NSM;
0F37;220;NSM;
0F39;216;NSM;
0F71;129;NSM;
0F72;130;NSM;
0F74;132;NSM;
0F7A;130;NSM;
0F7B;130;NSM;
0F7C;130;NSM;
0F7D;130;NSM;
0F80;130;NSM;
0F82;230;NSM;
0F83;230;NSM;
0F84;9;NSM;
0F86;230;NSM;
0F87;230;NSM;
0FC6;220;NSM;
1037;7;NSM;
1039;9;NSM;
17D2;9;NSM;
18A9;228;NSM;
20D0;230;NSM;
20D1;230;NSM;
20D2;1;NSM;
20D3;1;NSM;
20D4;230;NSM;
20D5;230;NSM;
20D6;230;NSM;
20D7;230;NSM;
20D8;1;NSM;
20D9;1;NSM;
20DA;1;NSM;
20DB;230;NSM;
20DC;230;NSM;
20E1;230;NSM;
302A;218;NSM;
302B;228;NSM;
302C;232;NSM;
302D;222;NSM;
302E;224;NSM;
302F;224;NSM;
3099;8;NSM;
309A;8;NSM;
FB1E;26;NSM;
FE20;230;NSM;
FE21;230;NSM;
FE22;230;NSM;
FE23;230;NSM;
1D167;1;NSM;
1D168;1;NSM;
1D169;1;NSM;
1D17B;220;NSM;
1D17C;220;NSM;
1D17D;220;NSM;
1D17E;220;NSM;
1D17F;220;NSM;
1D180;220;NSM;
1D181;220;NSM;
1D182;220;NSM;
1D185;230;NSM;
1D186;230;NSM;
1D187;230;NSM;
1D188;230;NSM;
1D189;230;NSM;
1D18A;220;NSM;
1D18B;220;NSM;
1D1AA;230;NSM;
1D1AB;230;NSM;
1D1AC;230;NSM;
1D1AD;230;NSM;
-713
Ver Arquivo
@@ -1,713 +0,0 @@
# uni-fold.txt - Unicode simple case folding
0041 0061;C;
0042 0062;C;
0043 0063;C;
0044 0064;C;
0045 0065;C;
0046 0066;C;
0047 0067;C;
0048 0068;C;
0049 0069;C;
004A 006A;C;
004B 006B;C;
004C 006C;C;
004D 006D;C;
004E 006E;C;
004F 006F;C;
0050 0070;C;
0051 0071;C;
0052 0072;C;
0053 0073;C;
0054 0074;C;
0055 0075;C;
0056 0076;C;
0057 0077;C;
0058 0078;C;
0059 0079;C;
005A 007A;C;
00B5 03BC;C;
00C0 00E0;C;
00C1 00E1;C;
00C2 00E2;C;
00C3 00E3;C;
00C4 00E4;C;
00C5 00E5;C;
00C6 00E6;C;
00C7 00E7;C;
00C8 00E8;C;
00C9 00E9;C;
00CA 00EA;C;
00CB 00EB;C;
00CC 00EC;C;
00CD 00ED;C;
00CE 00EE;C;
00CF 00EF;C;
00D0 00F0;C;
00D1 00F1;C;
00D2 00F2;C;
00D3 00F3;C;
00D4 00F4;C;
00D5 00F5;C;
00D6 00F6;C;
00D8 00F8;C;
00D9 00F9;C;
00DA 00FA;C;
00DB 00FB;C;
00DC 00FC;C;
00DD 00FD;C;
00DE 00FE;C;
0100 0101;C;
0102 0103;C;
0104 0105;C;
0106 0107;C;
0108 0109;C;
010A 010B;C;
010C 010D;C;
010E 010F;C;
0110 0111;C;
0112 0113;C;
0114 0115;C;
0116 0117;C;
0118 0119;C;
011A 011B;C;
011C 011D;C;
011E 011F;C;
0120 0121;C;
0122 0123;C;
0124 0125;C;
0126 0127;C;
0128 0129;C;
012A 012B;C;
012C 012D;C;
012E 012F;C;
0130 0069;I;
0131 0069;I;
0132 0133;C;
0134 0135;C;
0136 0137;C;
0139 013A;C;
013B 013C;C;
013D 013E;C;
013F 0140;C;
0141 0142;C;
0143 0144;C;
0145 0146;C;
0147 0148;C;
014A 014B;C;
014C 014D;C;
014E 014F;C;
0150 0151;C;
0152 0153;C;
0154 0155;C;
0156 0157;C;
0158 0159;C;
015A 015B;C;
015C 015D;C;
015E 015F;C;
0160 0161;C;
0162 0163;C;
0164 0165;C;
0166 0167;C;
0168 0169;C;
016A 016B;C;
016C 016D;C;
016E 016F;C;
0170 0171;C;
0172 0173;C;
0174 0175;C;
0176 0177;C;
0178 00FF;C;
0179 017A;C;
017B 017C;C;
017D 017E;C;
017F 0073;C;
0181 0253;C;
0182 0183;C;
0184 0185;C;
0186 0254;C;
0187 0188;C;
0189 0256;C;
018A 0257;C;
018B 018C;C;
018E 01DD;C;
018F 0259;C;
0190 025B;C;
0191 0192;C;
0193 0260;C;
0194 0263;C;
0196 0269;C;
0197 0268;C;
0198 0199;C;
019C 026F;C;
019D 0272;C;
019F 0275;C;
01A0 01A1;C;
01A2 01A3;C;
01A4 01A5;C;
01A6 0280;C;
01A7 01A8;C;
01A9 0283;C;
01AC 01AD;C;
01AE 0288;C;
01AF 01B0;C;
01B1 028A;C;
01B2 028B;C;
01B3 01B4;C;
01B5 01B6;C;
01B7 0292;C;
01B8 01B9;C;
01BC 01BD;C;
01C4 01C6;C;
01C5 01C6;C;
01C7 01C9;C;
01C8 01C9;C;
01CA 01CC;C;
01CB 01CC;C;
01CD 01CE;C;
01CF 01D0;C;
01D1 01D2;C;
01D3 01D4;C;
01D5 01D6;C;
01D7 01D8;C;
01D9 01DA;C;
01DB 01DC;C;
01DE 01DF;C;
01E0 01E1;C;
01E2 01E3;C;
01E4 01E5;C;
01E6 01E7;C;
01E8 01E9;C;
01EA 01EB;C;
01EC 01ED;C;
01EE 01EF;C;
01F1 01F3;C;
01F2 01F3;C;
01F4 01F5;C;
01F6 0195;C;
01F7 01BF;C;
01F8 01F9;C;
01FA 01FB;C;
01FC 01FD;C;
01FE 01FF;C;
0200 0201;C;
0202 0203;C;
0204 0205;C;
0206 0207;C;
0208 0209;C;
020A 020B;C;
020C 020D;C;
020E 020F;C;
0210 0211;C;
0212 0213;C;
0214 0215;C;
0216 0217;C;
0218 0219;C;
021A 021B;C;
021C 021D;C;
021E 021F;C;
0222 0223;C;
0224 0225;C;
0226 0227;C;
0228 0229;C;
022A 022B;C;
022C 022D;C;
022E 022F;C;
0230 0231;C;
0232 0233;C;
0345 03B9;C;
0386 03AC;C;
0388 03AD;C;
0389 03AE;C;
038A 03AF;C;
038C 03CC;C;
038E 03CD;C;
038F 03CE;C;
0391 03B1;C;
0392 03B2;C;
0393 03B3;C;
0394 03B4;C;
0395 03B5;C;
0396 03B6;C;
0397 03B7;C;
0398 03B8;C;
0399 03B9;C;
039A 03BA;C;
039B 03BB;C;
039C 03BC;C;
039D 03BD;C;
039E 03BE;C;
039F 03BF;C;
03A0 03C0;C;
03A1 03C1;C;
03A3 03C3;C;
03A4 03C4;C;
03A5 03C5;C;
03A6 03C6;C;
03A7 03C7;C;
03A8 03C8;C;
03A9 03C9;C;
03AA 03CA;C;
03AB 03CB;C;
03C2 03C3;C;
03D0 03B2;C;
03D1 03B8;C;
03D5 03C6;C;
03D6 03C0;C;
03DA 03DB;C;
03DC 03DD;C;
03DE 03DF;C;
03E0 03E1;C;
03E2 03E3;C;
03E4 03E5;C;
03E6 03E7;C;
03E8 03E9;C;
03EA 03EB;C;
03EC 03ED;C;
03EE 03EF;C;
03F0 03BA;C;
03F1 03C1;C;
03F2 03C3;C;
03F4 03B8;C;
03F5 03B5;C;
0400 0450;C;
0401 0451;C;
0402 0452;C;
0403 0453;C;
0404 0454;C;
0405 0455;C;
0406 0456;C;
0407 0457;C;
0408 0458;C;
0409 0459;C;
040A 045A;C;
040B 045B;C;
040C 045C;C;
040D 045D;C;
040E 045E;C;
040F 045F;C;
0410 0430;C;
0411 0431;C;
0412 0432;C;
0413 0433;C;
0414 0434;C;
0415 0435;C;
0416 0436;C;
0417 0437;C;
0418 0438;C;
0419 0439;C;
041A 043A;C;
041B 043B;C;
041C 043C;C;
041D 043D;C;
041E 043E;C;
041F 043F;C;
0420 0440;C;
0421 0441;C;
0422 0442;C;
0423 0443;C;
0424 0444;C;
0425 0445;C;
0426 0446;C;
0427 0447;C;
0428 0448;C;
0429 0449;C;
042A 044A;C;
042B 044B;C;
042C 044C;C;
042D 044D;C;
042E 044E;C;
042F 044F;C;
0460 0461;C;
0462 0463;C;
0464 0465;C;
0466 0467;C;
0468 0469;C;
046A 046B;C;
046C 046D;C;
046E 046F;C;
0470 0471;C;
0472 0473;C;
0474 0475;C;
0476 0477;C;
0478 0479;C;
047A 047B;C;
047C 047D;C;
047E 047F;C;
0480 0481;C;
048C 048D;C;
048E 048F;C;
0490 0491;C;
0492 0493;C;
0494 0495;C;
0496 0497;C;
0498 0499;C;
049A 049B;C;
049C 049D;C;
049E 049F;C;
04A0 04A1;C;
04A2 04A3;C;
04A4 04A5;C;
04A6 04A7;C;
04A8 04A9;C;
04AA 04AB;C;
04AC 04AD;C;
04AE 04AF;C;
04B0 04B1;C;
04B2 04B3;C;
04B4 04B5;C;
04B6 04B7;C;
04B8 04B9;C;
04BA 04BB;C;
04BC 04BD;C;
04BE 04BF;C;
04C1 04C2;C;
04C3 04C4;C;
04C7 04C8;C;
04CB 04CC;C;
04D0 04D1;C;
04D2 04D3;C;
04D4 04D5;C;
04D6 04D7;C;
04D8 04D9;C;
04DA 04DB;C;
04DC 04DD;C;
04DE 04DF;C;
04E0 04E1;C;
04E2 04E3;C;
04E4 04E5;C;
04E6 04E7;C;
04E8 04E9;C;
04EA 04EB;C;
04EC 04ED;C;
04EE 04EF;C;
04F0 04F1;C;
04F2 04F3;C;
04F4 04F5;C;
04F8 04F9;C;
0531 0561;C;
0532 0562;C;
0533 0563;C;
0534 0564;C;
0535 0565;C;
0536 0566;C;
0537 0567;C;
0538 0568;C;
0539 0569;C;
053A 056A;C;
053B 056B;C;
053C 056C;C;
053D 056D;C;
053E 056E;C;
053F 056F;C;
0540 0570;C;
0541 0571;C;
0542 0572;C;
0543 0573;C;
0544 0574;C;
0545 0575;C;
0546 0576;C;
0547 0577;C;
0548 0578;C;
0549 0579;C;
054A 057A;C;
054B 057B;C;
054C 057C;C;
054D 057D;C;
054E 057E;C;
054F 057F;C;
0550 0580;C;
0551 0581;C;
0552 0582;C;
0553 0583;C;
0554 0584;C;
0555 0585;C;
0556 0586;C;
1E00 1E01;C;
1E02 1E03;C;
1E04 1E05;C;
1E06 1E07;C;
1E08 1E09;C;
1E0A 1E0B;C;
1E0C 1E0D;C;
1E0E 1E0F;C;
1E10 1E11;C;
1E12 1E13;C;
1E14 1E15;C;
1E16 1E17;C;
1E18 1E19;C;
1E1A 1E1B;C;
1E1C 1E1D;C;
1E1E 1E1F;C;
1E20 1E21;C;
1E22 1E23;C;
1E24 1E25;C;
1E26 1E27;C;
1E28 1E29;C;
1E2A 1E2B;C;
1E2C 1E2D;C;
1E2E 1E2F;C;
1E30 1E31;C;
1E32 1E33;C;
1E34 1E35;C;
1E36 1E37;C;
1E38 1E39;C;
1E3A 1E3B;C;
1E3C 1E3D;C;
1E3E 1E3F;C;
1E40 1E41;C;
1E42 1E43;C;
1E44 1E45;C;
1E46 1E47;C;
1E48 1E49;C;
1E4A 1E4B;C;
1E4C 1E4D;C;
1E4E 1E4F;C;
1E50 1E51;C;
1E52 1E53;C;
1E54 1E55;C;
1E56 1E57;C;
1E58 1E59;C;
1E5A 1E5B;C;
1E5C 1E5D;C;
1E5E 1E5F;C;
1E60 1E61;C;
1E62 1E63;C;
1E64 1E65;C;
1E66 1E67;C;
1E68 1E69;C;
1E6A 1E6B;C;
1E6C 1E6D;C;
1E6E 1E6F;C;
1E70 1E71;C;
1E72 1E73;C;
1E74 1E75;C;
1E76 1E77;C;
1E78 1E79;C;
1E7A 1E7B;C;
1E7C 1E7D;C;
1E7E 1E7F;C;
1E80 1E81;C;
1E82 1E83;C;
1E84 1E85;C;
1E86 1E87;C;
1E88 1E89;C;
1E8A 1E8B;C;
1E8C 1E8D;C;
1E8E 1E8F;C;
1E90 1E91;C;
1E92 1E93;C;
1E94 1E95;C;
1E9B 1E61;C;
1EA0 1EA1;C;
1EA2 1EA3;C;
1EA4 1EA5;C;
1EA6 1EA7;C;
1EA8 1EA9;C;
1EAA 1EAB;C;
1EAC 1EAD;C;
1EAE 1EAF;C;
1EB0 1EB1;C;
1EB2 1EB3;C;
1EB4 1EB5;C;
1EB6 1EB7;C;
1EB8 1EB9;C;
1EBA 1EBB;C;
1EBC 1EBD;C;
1EBE 1EBF;C;
1EC0 1EC1;C;
1EC2 1EC3;C;
1EC4 1EC5;C;
1EC6 1EC7;C;
1EC8 1EC9;C;
1ECA 1ECB;C;
1ECC 1ECD;C;
1ECE 1ECF;C;
1ED0 1ED1;C;
1ED2 1ED3;C;
1ED4 1ED5;C;
1ED6 1ED7;C;
1ED8 1ED9;C;
1EDA 1EDB;C;
1EDC 1EDD;C;
1EDE 1EDF;C;
1EE0 1EE1;C;
1EE2 1EE3;C;
1EE4 1EE5;C;
1EE6 1EE7;C;
1EE8 1EE9;C;
1EEA 1EEB;C;
1EEC 1EED;C;
1EEE 1EEF;C;
1EF0 1EF1;C;
1EF2 1EF3;C;
1EF4 1EF5;C;
1EF6 1EF7;C;
1EF8 1EF9;C;
1F08 1F00;C;
1F09 1F01;C;
1F0A 1F02;C;
1F0B 1F03;C;
1F0C 1F04;C;
1F0D 1F05;C;
1F0E 1F06;C;
1F0F 1F07;C;
1F18 1F10;C;
1F19 1F11;C;
1F1A 1F12;C;
1F1B 1F13;C;
1F1C 1F14;C;
1F1D 1F15;C;
1F28 1F20;C;
1F29 1F21;C;
1F2A 1F22;C;
1F2B 1F23;C;
1F2C 1F24;C;
1F2D 1F25;C;
1F2E 1F26;C;
1F2F 1F27;C;
1F38 1F30;C;
1F39 1F31;C;
1F3A 1F32;C;
1F3B 1F33;C;
1F3C 1F34;C;
1F3D 1F35;C;
1F3E 1F36;C;
1F3F 1F37;C;
1F48 1F40;C;
1F49 1F41;C;
1F4A 1F42;C;
1F4B 1F43;C;
1F4C 1F44;C;
1F4D 1F45;C;
1F59 1F51;C;
1F5B 1F53;C;
1F5D 1F55;C;
1F5F 1F57;C;
1F68 1F60;C;
1F69 1F61;C;
1F6A 1F62;C;
1F6B 1F63;C;
1F6C 1F64;C;
1F6D 1F65;C;
1F6E 1F66;C;
1F6F 1F67;C;
1F88 1F80;S;
1F89 1F81;S;
1F8A 1F82;S;
1F8B 1F83;S;
1F8C 1F84;S;
1F8D 1F85;S;
1F8E 1F86;S;
1F8F 1F87;S;
1F98 1F90;S;
1F99 1F91;S;
1F9A 1F92;S;
1F9B 1F93;S;
1F9C 1F94;S;
1F9D 1F95;S;
1F9E 1F96;S;
1F9F 1F97;S;
1FA8 1FA0;S;
1FA9 1FA1;S;
1FAA 1FA2;S;
1FAB 1FA3;S;
1FAC 1FA4;S;
1FAD 1FA5;S;
1FAE 1FA6;S;
1FAF 1FA7;S;
1FB8 1FB0;C;
1FB9 1FB1;C;
1FBA 1F70;C;
1FBB 1F71;C;
1FBC 1FB3;S;
1FBE 03B9;C;
1FC8 1F72;C;
1FC9 1F73;C;
1FCA 1F74;C;
1FCB 1F75;C;
1FCC 1FC3;S;
1FD8 1FD0;C;
1FD9 1FD1;C;
1FDA 1F76;C;
1FDB 1F77;C;
1FE8 1FE0;C;
1FE9 1FE1;C;
1FEA 1F7A;C;
1FEB 1F7B;C;
1FEC 1FE5;C;
1FF8 1F78;C;
1FF9 1F79;C;
1FFA 1F7C;C;
1FFB 1F7D;C;
1FFC 1FF3;S;
2126 03C9;C;
212A 006B;C;
212B 00E5;C;
2160 2170;C;
2161 2171;C;
2162 2172;C;
2163 2173;C;
2164 2174;C;
2165 2175;C;
2166 2176;C;
2167 2177;C;
2168 2178;C;
2169 2179;C;
216A 217A;C;
216B 217B;C;
216C 217C;C;
216D 217D;C;
216E 217E;C;
216F 217F;C;
24B6 24D0;C;
24B7 24D1;C;
24B8 24D2;C;
24B9 24D3;C;
24BA 24D4;C;
24BB 24D5;C;
24BC 24D6;C;
24BD 24D7;C;
24BE 24D8;C;
24BF 24D9;C;
24C0 24DA;C;
24C1 24DB;C;
24C2 24DC;C;
24C3 24DD;C;
24C4 24DE;C;
24C5 24DF;C;
24C6 24E0;C;
24C7 24E1;C;
24C8 24E2;C;
24C9 24E3;C;
24CA 24E4;C;
24CB 24E5;C;
24CC 24E6;C;
24CD 24E7;C;
24CE 24E8;C;
24CF 24E9;C;
FF21 FF41;C;
FF22 FF42;C;
FF23 FF43;C;
FF24 FF44;C;
FF25 FF45;C;
FF26 FF46;C;
FF27 FF47;C;
FF28 FF48;C;
FF29 FF49;C;
FF2A FF4A;C;
FF2B FF4B;C;
FF2C FF4C;C;
FF2D FF4D;C;
FF2E FF4E;C;
FF2F FF4F;C;
FF30 FF50;C;
FF31 FF51;C;
FF32 FF52;C;
FF33 FF53;C;
FF34 FF54;C;
FF35 FF55;C;
FF36 FF56;C;
FF37 FF57;C;
FF38 FF58;C;
FF39 FF59;C;
FF3A FF5A;C;
-788
Ver Arquivo
@@ -1,788 +0,0 @@
# uni-full.txt - Unicode full case folding
0041 0061 0000 0000;C;
0042 0062 0000 0000;C;
0043 0063 0000 0000;C;
0044 0064 0000 0000;C;
0045 0065 0000 0000;C;
0046 0066 0000 0000;C;
0047 0067 0000 0000;C;
0048 0068 0000 0000;C;
0049 0069 0000 0000;C;
004A 006A 0000 0000;C;
004B 006B 0000 0000;C;
004C 006C 0000 0000;C;
004D 006D 0000 0000;C;
004E 006E 0000 0000;C;
004F 006F 0000 0000;C;
0050 0070 0000 0000;C;
0051 0071 0000 0000;C;
0052 0072 0000 0000;C;
0053 0073 0000 0000;C;
0054 0074 0000 0000;C;
0055 0075 0000 0000;C;
0056 0076 0000 0000;C;
0057 0077 0000 0000;C;
0058 0078 0000 0000;C;
0059 0079 0000 0000;C;
005A 007A 0000 0000;C;
00B5 03BC 0000 0000;C;
00C0 00E0 0000 0000;C;
00C1 00E1 0000 0000;C;
00C2 00E2 0000 0000;C;
00C3 00E3 0000 0000;C;
00C4 00E4 0000 0000;C;
00C5 00E5 0000 0000;C;
00C6 00E6 0000 0000;C;
00C7 00E7 0000 0000;C;
00C8 00E8 0000 0000;C;
00C9 00E9 0000 0000;C;
00CA 00EA 0000 0000;C;
00CB 00EB 0000 0000;C;
00CC 00EC 0000 0000;C;
00CD 00ED 0000 0000;C;
00CE 00EE 0000 0000;C;
00CF 00EF 0000 0000;C;
00D0 00F0 0000 0000;C;
00D1 00F1 0000 0000;C;
00D2 00F2 0000 0000;C;
00D3 00F3 0000 0000;C;
00D4 00F4 0000 0000;C;
00D5 00F5 0000 0000;C;
00D6 00F6 0000 0000;C;
00D8 00F8 0000 0000;C;
00D9 00F9 0000 0000;C;
00DA 00FA 0000 0000;C;
00DB 00FB 0000 0000;C;
00DC 00FC 0000 0000;C;
00DD 00FD 0000 0000;C;
00DE 00FE 0000 0000;C;
00DF 0073 0073 0000;F;
0100 0101 0000 0000;C;
0102 0103 0000 0000;C;
0104 0105 0000 0000;C;
0106 0107 0000 0000;C;
0108 0109 0000 0000;C;
010A 010B 0000 0000;C;
010C 010D 0000 0000;C;
010E 010F 0000 0000;C;
0110 0111 0000 0000;C;
0112 0113 0000 0000;C;
0114 0115 0000 0000;C;
0116 0117 0000 0000;C;
0118 0119 0000 0000;C;
011A 011B 0000 0000;C;
011C 011D 0000 0000;C;
011E 011F 0000 0000;C;
0120 0121 0000 0000;C;
0122 0123 0000 0000;C;
0124 0125 0000 0000;C;
0126 0127 0000 0000;C;
0128 0129 0000 0000;C;
012A 012B 0000 0000;C;
012C 012D 0000 0000;C;
012E 012F 0000 0000;C;
0130 0069 0000 0000;I;
0131 0069 0000 0000;I;
0132 0133 0000 0000;C;
0134 0135 0000 0000;C;
0136 0137 0000 0000;C;
0139 013A 0000 0000;C;
013B 013C 0000 0000;C;
013D 013E 0000 0000;C;
013F 0140 0000 0000;C;
0141 0142 0000 0000;C;
0143 0144 0000 0000;C;
0145 0146 0000 0000;C;
0147 0148 0000 0000;C;
0149 02BC 006E 0000;F;
014A 014B 0000 0000;C;
014C 014D 0000 0000;C;
014E 014F 0000 0000;C;
0150 0151 0000 0000;C;
0152 0153 0000 0000;C;
0154 0155 0000 0000;C;
0156 0157 0000 0000;C;
0158 0159 0000 0000;C;
015A 015B 0000 0000;C;
015C 015D 0000 0000;C;
015E 015F 0000 0000;C;
0160 0161 0000 0000;C;
0162 0163 0000 0000;C;
0164 0165 0000 0000;C;
0166 0167 0000 0000;C;
0168 0169 0000 0000;C;
016A 016B 0000 0000;C;
016C 016D 0000 0000;C;
016E 016F 0000 0000;C;
0170 0171 0000 0000;C;
0172 0173 0000 0000;C;
0174 0175 0000 0000;C;
0176 0177 0000 0000;C;
0178 00FF 0000 0000;C;
0179 017A 0000 0000;C;
017B 017C 0000 0000;C;
017D 017E 0000 0000;C;
017F 0073 0000 0000;C;
0181 0253 0000 0000;C;
0182 0183 0000 0000;C;
0184 0185 0000 0000;C;
0186 0254 0000 0000;C;
0187 0188 0000 0000;C;
0189 0256 0000 0000;C;
018A 0257 0000 0000;C;
018B 018C 0000 0000;C;
018E 01DD 0000 0000;C;
018F 0259 0000 0000;C;
0190 025B 0000 0000;C;
0191 0192 0000 0000;C;
0193 0260 0000 0000;C;
0194 0263 0000 0000;C;
0196 0269 0000 0000;C;
0197 0268 0000 0000;C;
0198 0199 0000 0000;C;
019C 026F 0000 0000;C;
019D 0272 0000 0000;C;
019F 0275 0000 0000;C;
01A0 01A1 0000 0000;C;
01A2 01A3 0000 0000;C;
01A4 01A5 0000 0000;C;
01A6 0280 0000 0000;C;
01A7 01A8 0000 0000;C;
01A9 0283 0000 0000;C;
01AC 01AD 0000 0000;C;
01AE 0288 0000 0000;C;
01AF 01B0 0000 0000;C;
01B1 028A 0000 0000;C;
01B2 028B 0000 0000;C;
01B3 01B4 0000 0000;C;
01B5 01B6 0000 0000;C;
01B7 0292 0000 0000;C;
01B8 01B9 0000 0000;C;
01BC 01BD 0000 0000;C;
01C4 01C6 0000 0000;C;
01C5 01C6 0000 0000;C;
01C7 01C9 0000 0000;C;
01C8 01C9 0000 0000;C;
01CA 01CC 0000 0000;C;
01CB 01CC 0000 0000;C;
01CD 01CE 0000 0000;C;
01CF 01D0 0000 0000;C;
01D1 01D2 0000 0000;C;
01D3 01D4 0000 0000;C;
01D5 01D6 0000 0000;C;
01D7 01D8 0000 0000;C;
01D9 01DA 0000 0000;C;
01DB 01DC 0000 0000;C;
01DE 01DF 0000 0000;C;
01E0 01E1 0000 0000;C;
01E2 01E3 0000 0000;C;
01E4 01E5 0000 0000;C;
01E6 01E7 0000 0000;C;
01E8 01E9 0000 0000;C;
01EA 01EB 0000 0000;C;
01EC 01ED 0000 0000;C;
01EE 01EF 0000 0000;C;
01F0 006A 030C 0000;F;
01F1 01F3 0000 0000;C;
01F2 01F3 0000 0000;C;
01F4 01F5 0000 0000;C;
01F6 0195 0000 0000;C;
01F7 01BF 0000 0000;C;
01F8 01F9 0000 0000;C;
01FA 01FB 0000 0000;C;
01FC 01FD 0000 0000;C;
01FE 01FF 0000 0000;C;
0200 0201 0000 0000;C;
0202 0203 0000 0000;C;
0204 0205 0000 0000;C;
0206 0207 0000 0000;C;
0208 0209 0000 0000;C;
020A 020B 0000 0000;C;
020C 020D 0000 0000;C;
020E 020F 0000 0000;C;
0210 0211 0000 0000;C;
0212 0213 0000 0000;C;
0214 0215 0000 0000;C;
0216 0217 0000 0000;C;
0218 0219 0000 0000;C;
021A 021B 0000 0000;C;
021C 021D 0000 0000;C;
021E 021F 0000 0000;C;
0222 0223 0000 0000;C;
0224 0225 0000 0000;C;
0226 0227 0000 0000;C;
0228 0229 0000 0000;C;
022A 022B 0000 0000;C;
022C 022D 0000 0000;C;
022E 022F 0000 0000;C;
0230 0231 0000 0000;C;
0232 0233 0000 0000;C;
0345 03B9 0000 0000;C;
0386 03AC 0000 0000;C;
0388 03AD 0000 0000;C;
0389 03AE 0000 0000;C;
038A 03AF 0000 0000;C;
038C 03CC 0000 0000;C;
038E 03CD 0000 0000;C;
038F 03CE 0000 0000;C;
0390 03B9 0308 0301;F;
0391 03B1 0000 0000;C;
0392 03B2 0000 0000;C;
0393 03B3 0000 0000;C;
0394 03B4 0000 0000;C;
0395 03B5 0000 0000;C;
0396 03B6 0000 0000;C;
0397 03B7 0000 0000;C;
0398 03B8 0000 0000;C;
0399 03B9 0000 0000;C;
039A 03BA 0000 0000;C;
039B 03BB 0000 0000;C;
039C 03BC 0000 0000;C;
039D 03BD 0000 0000;C;
039E 03BE 0000 0000;C;
039F 03BF 0000 0000;C;
03A0 03C0 0000 0000;C;
03A1 03C1 0000 0000;C;
03A3 03C3 0000 0000;C;
03A4 03C4 0000 0000;C;
03A5 03C5 0000 0000;C;
03A6 03C6 0000 0000;C;
03A7 03C7 0000 0000;C;
03A8 03C8 0000 0000;C;
03A9 03C9 0000 0000;C;
03AA 03CA 0000 0000;C;
03AB 03CB 0000 0000;C;
03B0 03C5 0308 0301;F;
03C2 03C3 0000 0000;C;
03D0 03B2 0000 0000;C;
03D1 03B8 0000 0000;C;
03D5 03C6 0000 0000;C;
03D6 03C0 0000 0000;C;
03DA 03DB 0000 0000;C;
03DC 03DD 0000 0000;C;
03DE 03DF 0000 0000;C;
03E0 03E1 0000 0000;C;
03E2 03E3 0000 0000;C;
03E4 03E5 0000 0000;C;
03E6 03E7 0000 0000;C;
03E8 03E9 0000 0000;C;
03EA 03EB 0000 0000;C;
03EC 03ED 0000 0000;C;
03EE 03EF 0000 0000;C;
03F0 03BA 0000 0000;C;
03F1 03C1 0000 0000;C;
03F2 03C3 0000 0000;C;
03F4 03B8 0000 0000;C;
03F5 03B5 0000 0000;C;
0400 0450 0000 0000;C;
0401 0451 0000 0000;C;
0402 0452 0000 0000;C;
0403 0453 0000 0000;C;
0404 0454 0000 0000;C;
0405 0455 0000 0000;C;
0406 0456 0000 0000;C;
0407 0457 0000 0000;C;
0408 0458 0000 0000;C;
0409 0459 0000 0000;C;
040A 045A 0000 0000;C;
040B 045B 0000 0000;C;
040C 045C 0000 0000;C;
040D 045D 0000 0000;C;
040E 045E 0000 0000;C;
040F 045F 0000 0000;C;
0410 0430 0000 0000;C;
0411 0431 0000 0000;C;
0412 0432 0000 0000;C;
0413 0433 0000 0000;C;
0414 0434 0000 0000;C;
0415 0435 0000 0000;C;
0416 0436 0000 0000;C;
0417 0437 0000 0000;C;
0418 0438 0000 0000;C;
0419 0439 0000 0000;C;
041A 043A 0000 0000;C;
041B 043B 0000 0000;C;
041C 043C 0000 0000;C;
041D 043D 0000 0000;C;
041E 043E 0000 0000;C;
041F 043F 0000 0000;C;
0420 0440 0000 0000;C;
0421 0441 0000 0000;C;
0422 0442 0000 0000;C;
0423 0443 0000 0000;C;
0424 0444 0000 0000;C;
0425 0445 0000 0000;C;
0426 0446 0000 0000;C;
0427 0447 0000 0000;C;
0428 0448 0000 0000;C;
0429 0449 0000 0000;C;
042A 044A 0000 0000;C;
042B 044B 0000 0000;C;
042C 044C 0000 0000;C;
042D 044D 0000 0000;C;
042E 044E 0000 0000;C;
042F 044F 0000 0000;C;
0460 0461 0000 0000;C;
0462 0463 0000 0000;C;
0464 0465 0000 0000;C;
0466 0467 0000 0000;C;
0468 0469 0000 0000;C;
046A 046B 0000 0000;C;
046C 046D 0000 0000;C;
046E 046F 0000 0000;C;
0470 0471 0000 0000;C;
0472 0473 0000 0000;C;
0474 0475 0000 0000;C;
0476 0477 0000 0000;C;
0478 0479 0000 0000;C;
047A 047B 0000 0000;C;
047C 047D 0000 0000;C;
047E 047F 0000 0000;C;
0480 0481 0000 0000;C;
048C 048D 0000 0000;C;
048E 048F 0000 0000;C;
0490 0491 0000 0000;C;
0492 0493 0000 0000;C;
0494 0495 0000 0000;C;
0496 0497 0000 0000;C;
0498 0499 0000 0000;C;
049A 049B 0000 0000;C;
049C 049D 0000 0000;C;
049E 049F 0000 0000;C;
04A0 04A1 0000 0000;C;
04A2 04A3 0000 0000;C;
04A4 04A5 0000 0000;C;
04A6 04A7 0000 0000;C;
04A8 04A9 0000 0000;C;
04AA 04AB 0000 0000;C;
04AC 04AD 0000 0000;C;
04AE 04AF 0000 0000;C;
04B0 04B1 0000 0000;C;
04B2 04B3 0000 0000;C;
04B4 04B5 0000 0000;C;
04B6 04B7 0000 0000;C;
04B8 04B9 0000 0000;C;
04BA 04BB 0000 0000;C;
04BC 04BD 0000 0000;C;
04BE 04BF 0000 0000;C;
04C1 04C2 0000 0000;C;
04C3 04C4 0000 0000;C;
04C7 04C8 0000 0000;C;
04CB 04CC 0000 0000;C;
04D0 04D1 0000 0000;C;
04D2 04D3 0000 0000;C;
04D4 04D5 0000 0000;C;
04D6 04D7 0000 0000;C;
04D8 04D9 0000 0000;C;
04DA 04DB 0000 0000;C;
04DC 04DD 0000 0000;C;
04DE 04DF 0000 0000;C;
04E0 04E1 0000 0000;C;
04E2 04E3 0000 0000;C;
04E4 04E5 0000 0000;C;
04E6 04E7 0000 0000;C;
04E8 04E9 0000 0000;C;
04EA 04EB 0000 0000;C;
04EC 04ED 0000 0000;C;
04EE 04EF 0000 0000;C;
04F0 04F1 0000 0000;C;
04F2 04F3 0000 0000;C;
04F4 04F5 0000 0000;C;
04F8 04F9 0000 0000;C;
0531 0561 0000 0000;C;
0532 0562 0000 0000;C;
0533 0563 0000 0000;C;
0534 0564 0000 0000;C;
0535 0565 0000 0000;C;
0536 0566 0000 0000;C;
0537 0567 0000 0000;C;
0538 0568 0000 0000;C;
0539 0569 0000 0000;C;
053A 056A 0000 0000;C;
053B 056B 0000 0000;C;
053C 056C 0000 0000;C;
053D 056D 0000 0000;C;
053E 056E 0000 0000;C;
053F 056F 0000 0000;C;
0540 0570 0000 0000;C;
0541 0571 0000 0000;C;
0542 0572 0000 0000;C;
0543 0573 0000 0000;C;
0544 0574 0000 0000;C;
0545 0575 0000 0000;C;
0546 0576 0000 0000;C;
0547 0577 0000 0000;C;
0548 0578 0000 0000;C;
0549 0579 0000 0000;C;
054A 057A 0000 0000;C;
054B 057B 0000 0000;C;
054C 057C 0000 0000;C;
054D 057D 0000 0000;C;
054E 057E 0000 0000;C;
054F 057F 0000 0000;C;
0550 0580 0000 0000;C;
0551 0581 0000 0000;C;
0552 0582 0000 0000;C;
0553 0583 0000 0000;C;
0554 0584 0000 0000;C;
0555 0585 0000 0000;C;
0556 0586 0000 0000;C;
0587 0565 0582 0000;F;
1E00 1E01 0000 0000;C;
1E02 1E03 0000 0000;C;
1E04 1E05 0000 0000;C;
1E06 1E07 0000 0000;C;
1E08 1E09 0000 0000;C;
1E0A 1E0B 0000 0000;C;
1E0C 1E0D 0000 0000;C;
1E0E 1E0F 0000 0000;C;
1E10 1E11 0000 0000;C;
1E12 1E13 0000 0000;C;
1E14 1E15 0000 0000;C;
1E16 1E17 0000 0000;C;
1E18 1E19 0000 0000;C;
1E1A 1E1B 0000 0000;C;
1E1C 1E1D 0000 0000;C;
1E1E 1E1F 0000 0000;C;
1E20 1E21 0000 0000;C;
1E22 1E23 0000 0000;C;
1E24 1E25 0000 0000;C;
1E26 1E27 0000 0000;C;
1E28 1E29 0000 0000;C;
1E2A 1E2B 0000 0000;C;
1E2C 1E2D 0000 0000;C;
1E2E 1E2F 0000 0000;C;
1E30 1E31 0000 0000;C;
1E32 1E33 0000 0000;C;
1E34 1E35 0000 0000;C;
1E36 1E37 0000 0000;C;
1E38 1E39 0000 0000;C;
1E3A 1E3B 0000 0000;C;
1E3C 1E3D 0000 0000;C;
1E3E 1E3F 0000 0000;C;
1E40 1E41 0000 0000;C;
1E42 1E43 0000 0000;C;
1E44 1E45 0000 0000;C;
1E46 1E47 0000 0000;C;
1E48 1E49 0000 0000;C;
1E4A 1E4B 0000 0000;C;
1E4C 1E4D 0000 0000;C;
1E4E 1E4F 0000 0000;C;
1E50 1E51 0000 0000;C;
1E52 1E53 0000 0000;C;
1E54 1E55 0000 0000;C;
1E56 1E57 0000 0000;C;
1E58 1E59 0000 0000;C;
1E5A 1E5B 0000 0000;C;
1E5C 1E5D 0000 0000;C;
1E5E 1E5F 0000 0000;C;
1E60 1E61 0000 0000;C;
1E62 1E63 0000 0000;C;
1E64 1E65 0000 0000;C;
1E66 1E67 0000 0000;C;
1E68 1E69 0000 0000;C;
1E6A 1E6B 0000 0000;C;
1E6C 1E6D 0000 0000;C;
1E6E 1E6F 0000 0000;C;
1E70 1E71 0000 0000;C;
1E72 1E73 0000 0000;C;
1E74 1E75 0000 0000;C;
1E76 1E77 0000 0000;C;
1E78 1E79 0000 0000;C;
1E7A 1E7B 0000 0000;C;
1E7C 1E7D 0000 0000;C;
1E7E 1E7F 0000 0000;C;
1E80 1E81 0000 0000;C;
1E82 1E83 0000 0000;C;
1E84 1E85 0000 0000;C;
1E86 1E87 0000 0000;C;
1E88 1E89 0000 0000;C;
1E8A 1E8B 0000 0000;C;
1E8C 1E8D 0000 0000;C;
1E8E 1E8F 0000 0000;C;
1E90 1E91 0000 0000;C;
1E92 1E93 0000 0000;C;
1E94 1E95 0000 0000;C;
1E96 0068 0331 0000;F;
1E97 0074 0308 0000;F;
1E98 0077 030A 0000;F;
1E99 0079 030A 0000;F;
1E9A 0061 02BE 0000;F;
1E9B 1E61 0000 0000;C;
1EA0 1EA1 0000 0000;C;
1EA2 1EA3 0000 0000;C;
1EA4 1EA5 0000 0000;C;
1EA6 1EA7 0000 0000;C;
1EA8 1EA9 0000 0000;C;
1EAA 1EAB 0000 0000;C;
1EAC 1EAD 0000 0000;C;
1EAE 1EAF 0000 0000;C;
1EB0 1EB1 0000 0000;C;
1EB2 1EB3 0000 0000;C;
1EB4 1EB5 0000 0000;C;
1EB6 1EB7 0000 0000;C;
1EB8 1EB9 0000 0000;C;
1EBA 1EBB 0000 0000;C;
1EBC 1EBD 0000 0000;C;
1EBE 1EBF 0000 0000;C;
1EC0 1EC1 0000 0000;C;
1EC2 1EC3 0000 0000;C;
1EC4 1EC5 0000 0000;C;
1EC6 1EC7 0000 0000;C;
1EC8 1EC9 0000 0000;C;
1ECA 1ECB 0000 0000;C;
1ECC 1ECD 0000 0000;C;
1ECE 1ECF 0000 0000;C;
1ED0 1ED1 0000 0000;C;
1ED2 1ED3 0000 0000;C;
1ED4 1ED5 0000 0000;C;
1ED6 1ED7 0000 0000;C;
1ED8 1ED9 0000 0000;C;
1EDA 1EDB 0000 0000;C;
1EDC 1EDD 0000 0000;C;
1EDE 1EDF 0000 0000;C;
1EE0 1EE1 0000 0000;C;
1EE2 1EE3 0000 0000;C;
1EE4 1EE5 0000 0000;C;
1EE6 1EE7 0000 0000;C;
1EE8 1EE9 0000 0000;C;
1EEA 1EEB 0000 0000;C;
1EEC 1EED 0000 0000;C;
1EEE 1EEF 0000 0000;C;
1EF0 1EF1 0000 0000;C;
1EF2 1EF3 0000 0000;C;
1EF4 1EF5 0000 0000;C;
1EF6 1EF7 0000 0000;C;
1EF8 1EF9 0000 0000;C;
1F08 1F00 0000 0000;C;
1F09 1F01 0000 0000;C;
1F0A 1F02 0000 0000;C;
1F0B 1F03 0000 0000;C;
1F0C 1F04 0000 0000;C;
1F0D 1F05 0000 0000;C;
1F0E 1F06 0000 0000;C;
1F0F 1F07 0000 0000;C;
1F18 1F10 0000 0000;C;
1F19 1F11 0000 0000;C;
1F1A 1F12 0000 0000;C;
1F1B 1F13 0000 0000;C;
1F1C 1F14 0000 0000;C;
1F1D 1F15 0000 0000;C;
1F28 1F20 0000 0000;C;
1F29 1F21 0000 0000;C;
1F2A 1F22 0000 0000;C;
1F2B 1F23 0000 0000;C;
1F2C 1F24 0000 0000;C;
1F2D 1F25 0000 0000;C;
1F2E 1F26 0000 0000;C;
1F2F 1F27 0000 0000;C;
1F38 1F30 0000 0000;C;
1F39 1F31 0000 0000;C;
1F3A 1F32 0000 0000;C;
1F3B 1F33 0000 0000;C;
1F3C 1F34 0000 0000;C;
1F3D 1F35 0000 0000;C;
1F3E 1F36 0000 0000;C;
1F3F 1F37 0000 0000;C;
1F48 1F40 0000 0000;C;
1F49 1F41 0000 0000;C;
1F4A 1F42 0000 0000;C;
1F4B 1F43 0000 0000;C;
1F4C 1F44 0000 0000;C;
1F4D 1F45 0000 0000;C;
1F50 03C5 0313 0000;F;
1F52 03C5 0313 0300;F;
1F54 03C5 0313 0301;F;
1F56 03C5 0313 0342;F;
1F59 1F51 0000 0000;C;
1F5B 1F53 0000 0000;C;
1F5D 1F55 0000 0000;C;
1F5F 1F57 0000 0000;C;
1F68 1F60 0000 0000;C;
1F69 1F61 0000 0000;C;
1F6A 1F62 0000 0000;C;
1F6B 1F63 0000 0000;C;
1F6C 1F64 0000 0000;C;
1F6D 1F65 0000 0000;C;
1F6E 1F66 0000 0000;C;
1F6F 1F67 0000 0000;C;
1F80 1F00 03B9 0000;F;
1F81 1F01 03B9 0000;F;
1F82 1F02 03B9 0000;F;
1F83 1F03 03B9 0000;F;
1F84 1F04 03B9 0000;F;
1F85 1F05 03B9 0000;F;
1F86 1F06 03B9 0000;F;
1F87 1F07 03B9 0000;F;
1F88 1F00 03B9 0000;F;
1F89 1F01 03B9 0000;F;
1F8A 1F02 03B9 0000;F;
1F8B 1F03 03B9 0000;F;
1F8C 1F04 03B9 0000;F;
1F8D 1F05 03B9 0000;F;
1F8E 1F06 03B9 0000;F;
1F8F 1F07 03B9 0000;F;
1F90 1F20 03B9 0000;F;
1F91 1F21 03B9 0000;F;
1F92 1F22 03B9 0000;F;
1F93 1F23 03B9 0000;F;
1F94 1F24 03B9 0000;F;
1F95 1F25 03B9 0000;F;
1F96 1F26 03B9 0000;F;
1F97 1F27 03B9 0000;F;
1F98 1F20 03B9 0000;F;
1F99 1F21 03B9 0000;F;
1F9A 1F22 03B9 0000;F;
1F9B 1F23 03B9 0000;F;
1F9C 1F24 03B9 0000;F;
1F9D 1F25 03B9 0000;F;
1F9E 1F26 03B9 0000;F;
1F9F 1F27 03B9 0000;F;
1FA0 1F60 03B9 0000;F;
1FA1 1F61 03B9 0000;F;
1FA2 1F62 03B9 0000;F;
1FA3 1F63 03B9 0000;F;
1FA4 1F64 03B9 0000;F;
1FA5 1F65 03B9 0000;F;
1FA6 1F66 03B9 0000;F;
1FA7 1F67 03B9 0000;F;
1FA8 1F60 03B9 0000;F;
1FA9 1F61 03B9 0000;F;
1FAA 1F62 03B9 0000;F;
1FAB 1F63 03B9 0000;F;
1FAC 1F64 03B9 0000;F;
1FAD 1F65 03B9 0000;F;
1FAE 1F66 03B9 0000;F;
1FAF 1F67 03B9 0000;F;
1FB2 1F70 03B9 0000;F;
1FB3 03B1 03B9 0000;F;
1FB4 03AC 03B9 0000;F;
1FB6 03B1 0342 0000;F;
1FB7 03B1 0342 03B9;F;
1FB8 1FB0 0000 0000;C;
1FB9 1FB1 0000 0000;C;
1FBA 1F70 0000 0000;C;
1FBB 1F71 0000 0000;C;
1FBC 03B1 03B9 0000;F;
1FBE 03B9 0000 0000;C;
1FC2 1F74 03B9 0000;F;
1FC3 03B7 03B9 0000;F;
1FC4 03AE 03B9 0000;F;
1FC6 03B7 0342 0000;F;
1FC7 03B7 0342 03B9;F;
1FC8 1F72 0000 0000;C;
1FC9 1F73 0000 0000;C;
1FCA 1F74 0000 0000;C;
1FCB 1F75 0000 0000;C;
1FCC 03B7 03B9 0000;F;
1FD2 03B9 0308 0300;F;
1FD3 03B9 0308 0301;F;
1FD6 03B9 0342 0000;F;
1FD7 03B9 0308 0342;F;
1FD8 1FD0 0000 0000;C;
1FD9 1FD1 0000 0000;C;
1FDA 1F76 0000 0000;C;
1FDB 1F77 0000 0000;C;
1FE2 03C5 0308 0300;F;
1FE3 03C5 0308 0301;F;
1FE4 03C1 0313 0000;F;
1FE6 03C5 0342 0000;F;
1FE7 03C5 0308 0342;F;
1FE8 1FE0 0000 0000;C;
1FE9 1FE1 0000 0000;C;
1FEA 1F7A 0000 0000;C;
1FEB 1F7B 0000 0000;C;
1FEC 1FE5 0000 0000;C;
1FF2 1F7C 03B9 0000;F;
1FF3 03C9 03B9 0000;F;
1FF4 03CE 03B9 0000;F;
1FF6 03C9 0342 0000;F;
1FF7 03C9 0342 03B9;F;
1FF8 1F78 0000 0000;C;
1FF9 1F79 0000 0000;C;
1FFA 1F7C 0000 0000;C;
1FFB 1F7D 0000 0000;C;
1FFC 03C9 03B9 0000;F;
2126 03C9 0000 0000;C;
212A 006B 0000 0000;C;
212B 00E5 0000 0000;C;
2160 2170 0000 0000;C;
2161 2171 0000 0000;C;
2162 2172 0000 0000;C;
2163 2173 0000 0000;C;
2164 2174 0000 0000;C;
2165 2175 0000 0000;C;
2166 2176 0000 0000;C;
2167 2177 0000 0000;C;
2168 2178 0000 0000;C;
2169 2179 0000 0000;C;
216A 217A 0000 0000;C;
216B 217B 0000 0000;C;
216C 217C 0000 0000;C;
216D 217D 0000 0000;C;
216E 217E 0000 0000;C;
216F 217F 0000 0000;C;
24B6 24D0 0000 0000;C;
24B7 24D1 0000 0000;C;
24B8 24D2 0000 0000;C;
24B9 24D3 0000 0000;C;
24BA 24D4 0000 0000;C;
24BB 24D5 0000 0000;C;
24BC 24D6 0000 0000;C;
24BD 24D7 0000 0000;C;
24BE 24D8 0000 0000;C;
24BF 24D9 0000 0000;C;
24C0 24DA 0000 0000;C;
24C1 24DB 0000 0000;C;
24C2 24DC 0000 0000;C;
24C3 24DD 0000 0000;C;
24C4 24DE 0000 0000;C;
24C5 24DF 0000 0000;C;
24C6 24E0 0000 0000;C;
24C7 24E1 0000 0000;C;
24C8 24E2 0000 0000;C;
24C9 24E3 0000 0000;C;
24CA 24E4 0000 0000;C;
24CB 24E5 0000 0000;C;
24CC 24E6 0000 0000;C;
24CD 24E7 0000 0000;C;
24CE 24E8 0000 0000;C;
24CF 24E9 0000 0000;C;
FB00 0066 0066 0000;F;
FB01 0066 0069 0000;F;
FB02 0066 006C 0000;F;
FB03 0066 0066 0069;F;
FB04 0066 0066 006C;F;
FB05 0073 0074 0000;F;
FB06 0073 0074 0000;F;
FB13 0574 0576 0000;F;
FB14 0574 0565 0000;F;
FB15 0574 056B 0000;F;
FB16 057E 0576 0000;F;
FB17 0574 056D 0000;F;
FF21 FF41 0000 0000;C;
FF22 FF42 0000 0000;C;
FF23 FF43 0000 0000;C;
FF24 FF44 0000 0000;C;
FF25 FF45 0000 0000;C;
FF26 FF46 0000 0000;C;
FF27 FF47 0000 0000;C;
FF28 FF48 0000 0000;C;
FF29 FF49 0000 0000;C;
FF2A FF4A 0000 0000;C;
FF2B FF4B 0000 0000;C;
FF2C FF4C 0000 0000;C;
FF2D FF4D 0000 0000;C;
FF2E FF4E 0000 0000;C;
FF2F FF4F 0000 0000;C;
FF30 FF50 0000 0000;C;
FF31 FF51 0000 0000;C;
FF32 FF52 0000 0000;C;
FF33 FF53 0000 0000;C;
FF34 FF54 0000 0000;C;
FF35 FF55 0000 0000;C;
FF36 FF56 0000 0000;C;
FF37 FF57 0000 0000;C;
FF38 FF58 0000 0000;C;
FF39 FF59 0000 0000;C;
FF3A FF5A 0000 0000;C;

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