CHANGES IN CUPS V1.3.10
+ - The scheduler now rejects ATTR: messages with empty values.
+ - The scheduler could consume all CPU handling closed connections
+ (STR #2988)
+ - The scheduler now protects against DNS rebinding attacks on
+ localhost.
- SECURITY: The PNG image reading code did not validate the
image size properly, leading to a potential buffer overflow
(STR #2974)
-CHANGES.txt - 2008-10-10
+CHANGES.txt - 2008-11-11
------------------------
+CHANGES IN CUPS V1.4b2
+
+ - Fixed a PPD compiler problem with the loading of message
+ catalogs (STR #2990)
+ - Fixed a PPD compiler problem with the loading of .strings files
+ (STR #2989)
+ - The cupsfilter utility did not set the CONTENT_TYPE environment
+ variable when running filters.
+ - The scheduler now waits to allow system sleep until the jobs
+ have all stopped.
+ - The IPP, LPD, and socket backends used different "connecting"
+ progress messages.
+
+
CHANGES IN CUPS V1.4b1
- Documentation updates (STR #2567)
ARCHFLAGS = @ARCHFLAGS@
ARFLAGS = @ARFLAGS@
BACKLIBS = @BACKLIBS@
+BANNERTOPS = @BANNERTOPS@
CFLAGS = @CPPFLAGS@ @CFLAGS@
COMMONLIBS = @LIBS@
CUPSDLIBS = @CUPSDLIBS@
PHPOPTIONS = @PHPOPTIONS@ -I../.. `$(PHPCONFIG) --includes`
SSLFLAGS = @SSLFLAGS@
SSLLIBS = @SSLLIBS@
+TEXTTOPS = @TEXTTOPS@
UNITTESTS = @UNITTESTS@
fputs("STATE: +connecting-to-device\n", stderr);
_cupsLangPrintf(stderr,
- _("INFO: Attempting to connect to host %s for printer %s\n"),
+ _("INFO: Connecting to %s for printer %s\n"),
hostname, printer);
for (lport = reserve == RESERVE_RFC1179 ? 732 : 1024, addr = addrlist,
}
_cupsLangPrintf(stderr,
- _("INFO: Attempting to connect to host %s on port %d\n"),
+ _("INFO: Connecting to %s on port %d\n"),
hostname, port);
fputs("STATE: +connecting-to-device\n", stderr);
websearch.o: cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
websearch.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h
websearch.o: ../cups/file.h ../cups/language.h ../cups/array.h help-index.h
-# DO NOT DELETE
-
-help-index.32.o: help-index.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-help-index.32.o: help-index.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-help-index.32.o: help-index.c ../cups/file.h ../cups/language.h ../cups/array.h help-index.h
-help-index.32.o: help-index.c ../cups/debug.h ../cups/i18n.h ../cups/transcode.h
-help-index.32.o: help-index.c ../cups/string.h ../config.h ../cups/dir.h
-html.32.o: html.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-html.32.o: html.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-html.32.o: html.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-html.32.o: html.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-ipp-var.32.o: ipp-var.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-ipp-var.32.o: ipp-var.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-ipp-var.32.o: ipp-var.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-ipp-var.32.o: ipp-var.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-search.32.o: search.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-search.32.o: search.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-search.32.o: search.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-search.32.o: search.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-template.32.o: template.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-template.32.o: template.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-template.32.o: template.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-template.32.o: template.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-var.32.o: var.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-var.32.o: var.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-var.32.o: var.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-var.32.o: var.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-admin.32.o: admin.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-admin.32.o: admin.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-admin.32.o: admin.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-admin.32.o: admin.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-admin.32.o: admin.c ../cups/adminutil.h ../cups/cups.h ../cups/file.h
-classes.32.o: classes.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-classes.32.o: classes.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-classes.32.o: classes.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-classes.32.o: classes.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-help.32.o: help.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-help.32.o: help.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-help.32.o: help.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-help.32.o: help.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-jobs.32.o: jobs.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-jobs.32.o: jobs.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-jobs.32.o: jobs.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-jobs.32.o: jobs.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-printers.32.o: printers.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-printers.32.o: printers.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-printers.32.o: printers.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-printers.32.o: printers.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-testcgi.32.o: testcgi.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testcgi.32.o: testcgi.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testcgi.32.o: testcgi.c ../cups/language.h ../cups/array.h help-index.h
-testhi.32.o: testhi.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testhi.32.o: testhi.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testhi.32.o: testhi.c ../cups/language.h ../cups/array.h help-index.h
-testtemplate.32.o: testtemplate.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testtemplate.32.o: testtemplate.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-testtemplate.32.o: testtemplate.c ../cups/file.h ../cups/language.h ../cups/array.h
-testtemplate.32.o: testtemplate.c help-index.h
-websearch.32.o: websearch.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-websearch.32.o: websearch.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-websearch.32.o: websearch.c ../cups/file.h ../cups/language.h ../cups/array.h help-index.h
-# DO NOT DELETE
-
-help-index.64.o: help-index.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-help-index.64.o: help-index.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-help-index.64.o: help-index.c ../cups/file.h ../cups/language.h ../cups/array.h help-index.h
-help-index.64.o: help-index.c ../cups/debug.h ../cups/i18n.h ../cups/transcode.h
-help-index.64.o: help-index.c ../cups/string.h ../config.h ../cups/dir.h
-html.64.o: html.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-html.64.o: html.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-html.64.o: html.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-html.64.o: html.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-ipp-var.64.o: ipp-var.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-ipp-var.64.o: ipp-var.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-ipp-var.64.o: ipp-var.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-ipp-var.64.o: ipp-var.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-search.64.o: search.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-search.64.o: search.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-search.64.o: search.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-search.64.o: search.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-template.64.o: template.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-template.64.o: template.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-template.64.o: template.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-template.64.o: template.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-var.64.o: var.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-var.64.o: var.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-var.64.o: var.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-var.64.o: var.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-admin.64.o: admin.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-admin.64.o: admin.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-admin.64.o: admin.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-admin.64.o: admin.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-admin.64.o: admin.c ../cups/adminutil.h ../cups/cups.h ../cups/file.h
-classes.64.o: classes.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-classes.64.o: classes.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-classes.64.o: classes.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-classes.64.o: classes.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-help.64.o: help.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-help.64.o: help.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-help.64.o: help.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-help.64.o: help.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-jobs.64.o: jobs.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-jobs.64.o: jobs.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-jobs.64.o: jobs.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-jobs.64.o: jobs.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-printers.64.o: printers.c cgi-private.h cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-printers.64.o: printers.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-printers.64.o: printers.c ../cups/language.h ../cups/array.h help-index.h ../cups/debug.h
-printers.64.o: printers.c ../cups/i18n.h ../cups/transcode.h ../cups/string.h ../config.h
-testcgi.64.o: testcgi.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testcgi.64.o: testcgi.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testcgi.64.o: testcgi.c ../cups/language.h ../cups/array.h help-index.h
-testhi.64.o: testhi.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testhi.64.o: testhi.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testhi.64.o: testhi.c ../cups/language.h ../cups/array.h help-index.h
-testtemplate.64.o: testtemplate.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testtemplate.64.o: testtemplate.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-testtemplate.64.o: testtemplate.c ../cups/file.h ../cups/language.h ../cups/array.h
-testtemplate.64.o: testtemplate.c help-index.h
-websearch.64.o: websearch.c cgi.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-websearch.64.o: websearch.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-websearch.64.o: websearch.c ../cups/file.h ../cups/language.h ../cups/array.h help-index.h
search.o \
template.o \
var.o
-LIB32OBJS = $(LIBOBJS:.o=.32.o)
-LIB64OBJS = $(LIBOBJS:.o=.64.o)
OBJS = \
$(LIBOBJS) \
- $(LIB32OBJS) \
- $(LIB64OBJS) \
admin.o \
classes.o \
help.o \
LIBTARGETS = \
libcupscgi.a \
$(LIBCUPSCGI) \
- $(LIB32CUPSCGI) \
- $(LIB32CUPSCGI) \
websearch
UNITTARGETS = \
clean:
$(RM) $(OBJS) $(TARGETS) $(UNITTARGETS)
$(RM) libcupscgi.so libcupscgi.sl libcupscgi.dylib
- $(RM) -r 32bit 64bit
#
#
depend:
- touch Dependencies.tmp
- makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1
- $(RM) Dependencies
- cp Dependencies.tmp Dependencies
- sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies
- sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies
- $(RM) Dependencies.tmp
+ makedepend -Y -I.. -fDependencies $(OBJS:.o=.c) >/dev/null 2>&1
#
# Install libraries...
#
-install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
+install-libs: $(INSTALLSTATIC)
echo Installing libraries in $(LIBDIR)...
$(INSTALL_DIR) -m 755 $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPSCGI) $(LIBDIR)
$(INSTALL_LIB) libcupscgi.a $(LIBDIR)
$(RANLIB) $(LIBDIR)/libcupscgi.a
-install32bit:
- echo Installing libraries in $(LIB32DIR)...
- $(INSTALL_DIR) -m 755 $(LIB32DIR)
- $(INSTALL_LIB) 32bit/libcupscgi.so.1 $(LIB32DIR)/libcupscgi.so.1
- $(LN) libcupscgi.so.1 $(LIB32DIR)/libcupscgi.so
-
-install64bit:
- echo Installing libraries in $(LIB64DIR)...
- $(INSTALL_DIR) -m 755 $(LIB64DIR)
- $(INSTALL_LIB) 64bit/libcupscgi.so.1 $(LIB64DIR)/libcupscgi.so.1
- $(LN) libcupscgi.so.1 $(LIB64DIR)/libcupscgi.so
-
#
# Uninstall all targets...
#
-uninstall: $(UNINSTALL32) $(UNINSTALL64)
+uninstall:
for file in $(CGIS); do \
$(RM) $(SERVERBIN)/cgi-bin/$$file; \
done
$(RM) $(INCLUDEDIR)/cups/help-index.h
-$(RMDIR) $(INCLUDEDIR)/cups
-uninstall32bit:
- $(RM) $(LIB32DIR)/libcupscgi.so
- $(RM) $(LIB32DIR)/libcupscgi.so.1
- -$(RMDIR) $(LIB32DIR)
-
-uninstall64bit:
- $(RM) $(LIB64DIR)/libcupscgi.so
- $(RM) $(LIB64DIR)/libcupscgi.so.1
- -$(RMDIR) $(LIB64DIR)
-
#
# Automatic API help files...
$(LN) $@ `basename $@ .1`
-#
-# 32bit/libcupscgi.so.1
-#
-
-32bit/libcupscgi.so.1: $(LIB32OBJS)
- echo Linking 32-bit $@...
- -mkdir 32bit
- $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS)
- $(RM) 32bit/libcupscgi.so
- $(LN) libcupscgi.so.1 32bit/libcupscgi.so
-
-
-#
-# 64bit/libcupscgi.so.1
-#
-
-64bit/libcupscgi.so.1: $(LIB64OBJS)
- echo Linking 64-bit $@...
- -mkdir 64bit
- $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS)
- $(RM) 64bit/libcupscgi.so
- $(LN) libcupscgi.so.1 64bit/libcupscgi.so
-
-
#
# libcupscgi.1.dylib
#
ipp_t *request, /* IPP request */
*response; /* IPP response */
cups_array_t *printers; /* Array of printer objects */
- ipp_attribute_t *printer, /* Printer object */
- *attr; /* Current attribute */
+ ipp_attribute_t *printer; /* Printer object */
int ascending, /* Order of printers (0 = descending) */
first, /* First printer to show */
count; /* Number of printers */
AC_CONFIG_HEADER(config.h)
dnl Version number information...
-CUPS_VERSION="1.4b1"
+CUPS_VERSION="1.4b2"
CUPS_REVISION=""
#if test -z "$CUPS_REVISION" -a -d .svn; then
# CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
AC_SUBST(DEFAULT_IPP_PORT)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
+dnl Filters
+AC_ARG_ENABLE(bannertops, [ --enable-bannertops build with default banner filter, default=auto ])
+AC_ARG_ENABLE(texttops, [ --enable-texttops build with default text filter, default=auto ])
+
+if test "x$enable_bannertops" = xno; then
+ BANNERTOPS=""
+elif test "x$enable_bannertops" = xyes; then
+ BANNERTOPS="bannertops"
+elif test $uname = Darwin; then
+ BANNERTOPS=""
+else
+ BANNERTOPS="bannertops"
+fi
+
+if test "x$enable_texttops" = xno; then
+ TEXTTOPS=""
+elif test "x$enable_texttops" = xyes; then
+ TEXTTOPS="texttops"
+elif test $uname = Darwin; then
+ TEXTTOPS=""
+else
+ TEXTTOPS="texttops"
+fi
+
+AC_SUBST(BANNERTOPS)
+AC_SUBST(TEXTTOPS)
+
dnl
dnl End of "$Id: cups-defaults.m4 7959 2008-09-17 19:30:58Z mike $".
dnl
Footer Printer Test Page
Notice This test page was produced by CUPS 1.4.
Image images/cups.rgb
+Image images/color-wheel.rgb
+
index.html \
robots.txt
WEBIMAGES = \
+ images/color-wheel.rgb \
images/cups.png \
images/cups.rgb \
images/cups-block-diagram.gif \
srgb.o: driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
srgb.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
srgb.o: ../cups/language.h ../cups/raster.h
-# DO NOT DELETE
-
-commandtoescpx.32.o: commandtoescpx.c ../cups/cups.h ../cups/ipp.h ../cups/http.h
-commandtoescpx.32.o: commandtoescpx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-commandtoescpx.32.o: commandtoescpx.c ../cups/file.h ../cups/language.h driver.h ../cups/raster.h
-commandtoescpx.32.o: commandtoescpx.c ../cups/string.h ../config.h ../data/escp.h
-commandtopclx.32.o: commandtopclx.c ../cups/cups.h ../cups/ipp.h ../cups/http.h
-commandtopclx.32.o: commandtopclx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-commandtopclx.32.o: commandtopclx.c ../cups/file.h ../cups/language.h driver.h ../cups/raster.h
-commandtopclx.32.o: commandtopclx.c ../cups/string.h ../config.h ../data/pcl.h
-rastertoescpx.32.o: rastertoescpx.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-rastertoescpx.32.o: rastertoescpx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-rastertoescpx.32.o: rastertoescpx.c ../cups/file.h ../cups/language.h ../cups/raster.h
-rastertoescpx.32.o: rastertoescpx.c ../cups/string.h ../config.h ../data/escp.h
-rastertopclx.32.o: rastertopclx.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-rastertopclx.32.o: rastertopclx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-rastertopclx.32.o: rastertopclx.c ../cups/file.h ../cups/language.h ../cups/raster.h
-rastertopclx.32.o: rastertopclx.c pcl-common.h ../cups/string.h ../config.h ../data/pcl.h
-pcl-common.32.o: pcl-common.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-pcl-common.32.o: pcl-common.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-pcl-common.32.o: pcl-common.c ../cups/file.h ../cups/language.h ../cups/raster.h pcl-common.h
-pcl-common.32.o: pcl-common.c ../cups/string.h ../config.h ../data/pcl.h
-testcmyk.32.o: testcmyk.c ../cups/string.h ../config.h driver.h ../cups/cups.h
-testcmyk.32.o: testcmyk.c ../cups/ipp.h ../cups/http.h ../cups/versioning.h ../cups/ppd.h
-testcmyk.32.o: testcmyk.c ../cups/array.h ../cups/file.h ../cups/language.h
-testcmyk.32.o: testcmyk.c ../cups/raster.h
-testdither.32.o: testdither.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testdither.32.o: testdither.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-testdither.32.o: testdither.c ../cups/file.h ../cups/language.h ../cups/raster.h
-testdither.32.o: testdither.c ../cups/string.h ../config.h
-testrgb.32.o: testrgb.c ../cups/string.h ../config.h driver.h ../cups/cups.h ../cups/ipp.h
-testrgb.32.o: testrgb.c ../cups/http.h ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-testrgb.32.o: testrgb.c ../cups/file.h ../cups/language.h ../cups/raster.h
-attr.32.o: attr.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-attr.32.o: attr.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-attr.32.o: attr.c ../cups/language.h ../cups/raster.h ../cups/string.h ../config.h
-check.32.o: check.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-check.32.o: check.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-check.32.o: check.c ../cups/language.h ../cups/raster.h
-cmyk.32.o: cmyk.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-cmyk.32.o: cmyk.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-cmyk.32.o: cmyk.c ../cups/language.h ../cups/raster.h ../cups/string.h ../config.h
-dither.32.o: dither.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-dither.32.o: dither.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-dither.32.o: dither.c ../cups/language.h ../cups/raster.h
-lut.32.o: lut.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-lut.32.o: lut.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-lut.32.o: lut.c ../cups/language.h ../cups/raster.h
-pack.32.o: pack.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-pack.32.o: pack.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-pack.32.o: pack.c ../cups/language.h ../cups/raster.h
-rgb.32.o: rgb.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-rgb.32.o: rgb.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-rgb.32.o: rgb.c ../cups/language.h ../cups/raster.h
-srgb.32.o: srgb.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-srgb.32.o: srgb.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-srgb.32.o: srgb.c ../cups/language.h ../cups/raster.h
-# DO NOT DELETE
-
-commandtoescpx.64.o: commandtoescpx.c ../cups/cups.h ../cups/ipp.h ../cups/http.h
-commandtoescpx.64.o: commandtoescpx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-commandtoescpx.64.o: commandtoescpx.c ../cups/file.h ../cups/language.h driver.h ../cups/raster.h
-commandtoescpx.64.o: commandtoescpx.c ../cups/string.h ../config.h ../data/escp.h
-commandtopclx.64.o: commandtopclx.c ../cups/cups.h ../cups/ipp.h ../cups/http.h
-commandtopclx.64.o: commandtopclx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-commandtopclx.64.o: commandtopclx.c ../cups/file.h ../cups/language.h driver.h ../cups/raster.h
-commandtopclx.64.o: commandtopclx.c ../cups/string.h ../config.h ../data/pcl.h
-rastertoescpx.64.o: rastertoescpx.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-rastertoescpx.64.o: rastertoescpx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-rastertoescpx.64.o: rastertoescpx.c ../cups/file.h ../cups/language.h ../cups/raster.h
-rastertoescpx.64.o: rastertoescpx.c ../cups/string.h ../config.h ../data/escp.h
-rastertopclx.64.o: rastertopclx.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-rastertopclx.64.o: rastertopclx.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-rastertopclx.64.o: rastertopclx.c ../cups/file.h ../cups/language.h ../cups/raster.h
-rastertopclx.64.o: rastertopclx.c pcl-common.h ../cups/string.h ../config.h ../data/pcl.h
-pcl-common.64.o: pcl-common.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-pcl-common.64.o: pcl-common.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-pcl-common.64.o: pcl-common.c ../cups/file.h ../cups/language.h ../cups/raster.h pcl-common.h
-pcl-common.64.o: pcl-common.c ../cups/string.h ../config.h ../data/pcl.h
-testcmyk.64.o: testcmyk.c ../cups/string.h ../config.h driver.h ../cups/cups.h
-testcmyk.64.o: testcmyk.c ../cups/ipp.h ../cups/http.h ../cups/versioning.h ../cups/ppd.h
-testcmyk.64.o: testcmyk.c ../cups/array.h ../cups/file.h ../cups/language.h
-testcmyk.64.o: testcmyk.c ../cups/raster.h
-testdither.64.o: testdither.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testdither.64.o: testdither.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-testdither.64.o: testdither.c ../cups/file.h ../cups/language.h ../cups/raster.h
-testdither.64.o: testdither.c ../cups/string.h ../config.h
-testrgb.64.o: testrgb.c ../cups/string.h ../config.h driver.h ../cups/cups.h ../cups/ipp.h
-testrgb.64.o: testrgb.c ../cups/http.h ../cups/versioning.h ../cups/ppd.h ../cups/array.h
-testrgb.64.o: testrgb.c ../cups/file.h ../cups/language.h ../cups/raster.h
-attr.64.o: attr.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-attr.64.o: attr.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-attr.64.o: attr.c ../cups/language.h ../cups/raster.h ../cups/string.h ../config.h
-check.64.o: check.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-check.64.o: check.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-check.64.o: check.c ../cups/language.h ../cups/raster.h
-cmyk.64.o: cmyk.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-cmyk.64.o: cmyk.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-cmyk.64.o: cmyk.c ../cups/language.h ../cups/raster.h ../cups/string.h ../config.h
-dither.64.o: dither.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-dither.64.o: dither.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-dither.64.o: dither.c ../cups/language.h ../cups/raster.h
-lut.64.o: lut.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-lut.64.o: lut.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-lut.64.o: lut.c ../cups/language.h ../cups/raster.h
-pack.64.o: pack.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-pack.64.o: pack.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-pack.64.o: pack.c ../cups/language.h ../cups/raster.h
-rgb.64.o: rgb.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-rgb.64.o: rgb.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-rgb.64.o: rgb.c ../cups/language.h ../cups/raster.h
-srgb.64.o: srgb.c driver.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-srgb.64.o: srgb.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-srgb.64.o: srgb.c ../cups/language.h ../cups/raster.h
pack.o \
rgb.o \
srgb.o
-LIB32OBJS = $(LIBOBJS:.o=.32.o)
-LIB64OBJS = $(LIBOBJS:.o=.64.o)
-
OBJS = \
commandtoescpx.o \
commandtopclx.o \
testcmyk.o \
testdither.o \
testrgb.o \
- $(LIBOBJS) \
- $(LIB32OBJS) \
- $(LIB64OBJS)
+ $(LIBOBJS)
LIBTARGETS = \
$(LIBCUPSDRIVER) \
- $(LIB32CUPSDRIVER) \
- $(LIB64CUPSDRIVER) \
libcupsdriver.a
UNITTARGETS = \
testcmyk \
$(RM) $(TARGETS) $(UNITTARGETS)
$(RM) -r test
$(RM) libcupsdriver.so libcupsdriver.sl libcupsdriver.dylib
- $(RM) -r 32bit 64bit
#
#
depend:
- touch Dependencies.tmp
- makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1
- $(RM) Dependencies
- cp Dependencies.tmp Dependencies
- sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies
- sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies
- $(RM) Dependencies.tmp
+ makedepend -Y -I.. -fDependencies $(OBJS:.o=.c) >/dev/null 2>&1
#
# Install libraries...
#
-install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
+install-libs: $(INSTALLSTATIC)
echo Installing libraries in $(LIBDIR)...
$(INSTALL_DIR) -m 755 $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPSDRIVER) $(LIBDIR)
$(INSTALL_LIB) libcupsdriver.a $(LIBDIR)
$(RANLIB) $(LIBDIR)/libcupsdriver.a
-install32bit:
- echo Installing libraries in $(LIB32DIR)...
- $(INSTALL_DIR) -m 755 $(LIB32DIR)
- $(INSTALL_LIB) 32bit/libcupsdriver.so.1 $(LIB32DIR)/libcupsdriver.so.1
- $(LN) libcupsdriver.so.1 $(LIB32DIR)/libcupsdriver.so
-
-install64bit:
- echo Installing libraries in $(LIB64DIR)...
- $(INSTALL_DIR) -m 755 $(LIB64DIR)
- $(INSTALL_LIB) 64bit/libcupsdriver.so.1 $(LIB64DIR)/libcupsdriver.so.1
- $(LN) libcupsdriver.so.1 $(LIB64DIR)/libcupsdriver.so
-
#
# Uninstall...
#
-uninstall: $(UNINSTALL32) $(UNINSTALL64)
+uninstall:
for file in commandtoescpx commandtopclx rastertoescpx rastertopclx; do \
$(RM) $(SERVERBIN)/filter/$$file; \
done
$(RM) $(INCLUDEDIR)/cups/driver.h
-$(RMDIR) $(INCLUDEDIR)/cups
-uninstall32bit:
- $(RM) $(LIB32DIR)/libcupsdriver.so
- $(RM) $(LIB32DIR)/libcupsdriver.so.1
- -$(RMDIR) $(LIB32DIR)
-
-uninstall64bit:
- $(RM) $(LIB64DIR)/libcupsdriver.so
- $(RM) $(LIB64DIR)/libcupsdriver.so.1
- -$(RMDIR) $(LIB64DIR)
-
#
# Automatic API help files...
$(LN) $@ `basename $@ .1`
-#
-# 32bit/libcupsdriver.so.1
-#
-
-32bit/libcupsdriver.so.1: $(LIB32OBJS)
- echo Linking 32-bit $@...
- -mkdir 32bit
- $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS)
- $(RM) 32bit/libcupsdriver.so
- $(LN) libcupsdriver.so.1 32bit/libcupsdriver.so
-
-
-#
-# 64bit/libcupsdriver.so.1
-#
-
-64bit/libcupsdriver.so.1: $(LIB64OBJS)
- echo Linking 64-bit $@...
- -mkdir 64bit
- $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS)
- $(RM) 64bit/libcupsdriver.so
- $(LN) libcupsdriver.so.1 64bit/libcupsdriver.so
-
-
#
# libcupsdriver.1.dylib
#
form-tree.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h
form-tree.o: ../cups/file.h ../cups/language.h ../cups/language.h
form-tree.o: ../cups/string.h ../config.h
+bannertops.o: pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
+bannertops.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h
+bannertops.o: ../cups/file.h ../cups/language.h ../cups/language.h
+bannertops.o: ../cups/string.h ../config.h ../cups/transcode.h image.h
+bannertops.o: ../cups/raster.h ../cups/i18n.h ../cups/transcode.h
commandtops.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h
commandtops.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h
commandtops.o: ../cups/file.h ../cups/language.h ../cups/string.h ../config.h
pdftops.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/versioning.h
pdftops.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
pdftops.o: ../cups/string.h ../config.h ../cups/i18n.h ../cups/transcode.h
+pstext.o: pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
+pstext.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
+pstext.o: ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
+pstext.o: ../cups/transcode.h ../cups/i18n.h ../cups/transcode.h
pstops.o: common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
pstops.o: ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
pstops.o: ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
form-tree.32.o: form-tree.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
form-tree.32.o: form-tree.c ../cups/file.h ../cups/language.h ../cups/language.h
form-tree.32.o: form-tree.c ../cups/string.h ../config.h
+bannertops.32.o: bannertops.c pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
+bannertops.32.o: bannertops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
+bannertops.32.o: bannertops.c ../cups/file.h ../cups/language.h ../cups/language.h
+bannertops.32.o: bannertops.c ../cups/string.h ../config.h ../cups/transcode.h image.h
+bannertops.32.o: bannertops.c ../cups/raster.h ../cups/i18n.h ../cups/transcode.h
commandtops.32.o: commandtops.c ../cups/cups.h ../cups/ipp.h ../cups/http.h
commandtops.32.o: commandtops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
commandtops.32.o: commandtops.c ../cups/file.h ../cups/language.h ../cups/string.h ../config.h
pdftops.32.o: pdftops.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/versioning.h
pdftops.32.o: pdftops.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
pdftops.32.o: pdftops.c ../cups/string.h ../config.h ../cups/i18n.h ../cups/transcode.h
+pstext.32.o: pstext.c pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
+pstext.32.o: pstext.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
+pstext.32.o: pstext.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
+pstext.32.o: pstext.c ../cups/transcode.h ../cups/i18n.h ../cups/transcode.h
pstops.32.o: pstops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
pstops.32.o: pstops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
pstops.32.o: pstops.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
form-tree.64.o: form-tree.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
form-tree.64.o: form-tree.c ../cups/file.h ../cups/language.h ../cups/language.h
form-tree.64.o: form-tree.c ../cups/string.h ../config.h
+bannertops.64.o: bannertops.c pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
+bannertops.64.o: bannertops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
+bannertops.64.o: bannertops.c ../cups/file.h ../cups/language.h ../cups/language.h
+bannertops.64.o: bannertops.c ../cups/string.h ../config.h ../cups/transcode.h image.h
+bannertops.64.o: bannertops.c ../cups/raster.h ../cups/i18n.h ../cups/transcode.h
commandtops.64.o: commandtops.c ../cups/cups.h ../cups/ipp.h ../cups/http.h
commandtops.64.o: commandtops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h
commandtops.64.o: commandtops.c ../cups/file.h ../cups/language.h ../cups/string.h ../config.h
pdftops.64.o: pdftops.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/versioning.h
pdftops.64.o: pdftops.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
pdftops.64.o: pdftops.c ../cups/string.h ../config.h ../cups/i18n.h ../cups/transcode.h
+pstext.64.o: pstext.c pstext.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
+pstext.64.o: pstext.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
+pstext.64.o: pstext.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
+pstext.64.o: pstext.c ../cups/transcode.h ../cups/i18n.h ../cups/transcode.h
pstops.64.o: pstops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
pstops.64.o: pstops.c ../cups/versioning.h ../cups/ppd.h ../cups/array.h ../cups/file.h
pstops.64.o: pstops.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
FILTERS = \
- bannertops \
+ $(BANNERTOPS) \
commandtops \
gziptoany \
hpgltops \
- texttops \
+ $(TEXTTOPS) \
pstops \
$(IMGFILTERS) \
$(PDFTOPS) \
int NumPages = 0; /* Number of pages in document */
float CharsPerInch = 10; /* Number of character columns per inch */
float LinesPerInch = 6; /* Number of lines per inch */
-int UTF8 = 0; /* Use UTF-8 encoding? */
int NumKeywords = 0; /* Number of known keywords */
char **Keywords = NULL; /* List of known keywords */
if ((ch = getc(fp)) == EOF)
return (EOF);
- if (ch < 0xc0 || !UTF8) /* One byte character? */
+ if (ch < 0xc0) /* One byte character? */
return (ch);
else if ((ch & 0xe0) == 0xc0)
{
line[strlen(line) - 1] = '\0'; /* Drop \n */
for (lineptr = line + 7; isspace(*lineptr & 255); lineptr ++); /* Skip whitespace */
- if (strcmp(lineptr, "8bit") == 0)
- {
- /*
- * 8-bit text...
- */
-
- UTF8 = 0;
- NumFonts = 0;
-
- /*
- * Read the font description(s)...
- */
-
- while (fgets(line, sizeof(line), fp) != NULL)
- {
- /*
- * Skip comment and blank lines...
- */
-
- if (line[0] == '#' || line[0] == '\n')
- continue;
-
- /*
- * Read the font descriptions that should look like:
- *
- * first last direction width normal [bold italic bold-italic]
- */
-
- lineptr = line;
-
- start = strtol(lineptr, &lineptr, 16);
- end = strtol(lineptr, &lineptr, 16);
-
- while (isspace(*lineptr & 255))
- lineptr ++;
-
- if (!*lineptr)
- break; /* Must be a font mapping */
-
- valptr = lineptr;
-
- while (!isspace(*lineptr & 255) && *lineptr)
- lineptr ++;
-
- if (!*lineptr)
- {
- /*
- * Can't have a font without all required values...
- */
-
- fprintf(stderr, _("ERROR: Bad font description line: %s\n"), valptr);
- fclose(fp);
- exit(1);
- }
-
- *lineptr++ = '\0';
-
- if (strcmp(valptr, "ltor") == 0)
- Directions[NumFonts] = 1;
- else if (strcmp(valptr, "rtol") == 0)
- Directions[NumFonts] = -1;
- else
- {
- fprintf(stderr, _("ERROR: Bad text direction %s\n"), valptr);
- fclose(fp);
- exit(1);
- }
-
- /*
- * Got the direction, now get the width...
- */
-
- while (isspace(*lineptr & 255))
- lineptr ++;
-
- valptr = lineptr;
-
- while (!isspace(*lineptr & 255) && *lineptr)
- lineptr ++;
-
- if (!*lineptr)
- {
- /*
- * Can't have a font without all required values...
- */
-
- fprintf(stderr, _("ERROR: Bad font description line: %s\n"), valptr);
- fclose(fp);
- exit(1);
- }
-
- *lineptr++ = '\0';
-
- if (strcmp(valptr, "single") == 0)
- Widths[NumFonts] = 1;
- else if (strcmp(valptr, "double") == 0)
- Widths[NumFonts] = 2;
- else
- {
- fprintf(stderr, _("ERROR: Bad text width %s\n"), valptr);
- fclose(fp);
- exit(1);
- }
-
- /*
- * Get the fonts...
- */
-
- for (i = 0; *lineptr && i < 4; i ++)
- {
- while (isspace(*lineptr & 255))
- lineptr ++;
-
- valptr = lineptr;
-
- while (!isspace(*lineptr & 255) && *lineptr)
- lineptr ++;
-
- if (*lineptr)
- *lineptr++ = '\0';
-
- if (lineptr > valptr)
- Fonts[NumFonts][i] = strdup(valptr);
- }
-
- /*
- * Fill in remaining fonts as needed...
- */
-
- for (j = i; j < 4; j ++)
- Fonts[NumFonts][j] = strdup(Fonts[NumFonts][0]);
-
- /*
- * Define the character mappings...
- */
-
- for (i = start, j = NumFonts * 256; i <= end; i ++, j ++)
- Chars[i] = j;
-
- NumFonts ++;
- }
-
- /*
- * Read encoding lines...
- */
-
- do
- {
- /*
- * Skip comment and blank lines...
- */
-
- if (line[0] == '#' || line[0] == '\n')
- continue;
-
- /*
- * Grab the character and unicode glyph number.
- */
-
- if (sscanf(line, "%x%x", &ch, &unicode) == 2 && ch < 256)
- Codes[Chars[ch]] = unicode;
- }
- while (fgets(line, sizeof(line), fp) != NULL);
-
- fclose(fp);
- }
- else if (strcmp(lineptr, "utf8") == 0)
+ if (strcmp(lineptr, "utf8") == 0)
{
/*
* UTF-8 (Unicode) text...
*/
- UTF8 = 1;
-
- /*
- * Read the font descriptions...
- */
-
NumFonts = 0;
while (fgets(line, sizeof(line), fp) != NULL)
while (*utf8)
{
- if (*utf8 < 0xc0 || !UTF8)
+ if (*utf8 < 0xc0)
ch = *utf8 ++;
else if ((*utf8 & 0xe0) == 0xc0)
{
install-data:
$(INSTALL_DIR) -m 755 $(DATADIR)/fonts
- for file in $(FONTS); do \
- $(INSTALL_DATA) $$file $(DATADIR)/fonts; \
- done
+ if test "x$(BANNERTOPS)" != x -o "x$(TEXTTOPS)" != x; then \
+ for file in $(FONTS); do \
+ $(INSTALL_DATA) $$file $(DATADIR)/fonts; \
+ done \
+ fi
#
msgid "INFO: AppleTalk disabled in System Preferences.\n"
msgstr ""
-#: backend/lpd.c:701
-#, c-format
-msgid "INFO: Attempting to connect to host %s for printer %s\n"
-msgstr ""
-
-#: backend/socket.c:270
-#, c-format
-msgid "INFO: Attempting to connect to host %s on port %d\n"
-msgstr ""
-
#: backend/ipp.c:1328
msgid "INFO: Canceling print job...\n"
msgstr ""
msgid "INFO: Connected to %s...\n"
msgstr ""
-#: backend/ipp.c:526
+#: backend/lpd.c:701
+#, c-format
+msgid "INFO: Connecting to %s for printer %s\n"
+msgstr ""
+
+#: backend/ipp.c:526 backend/socket.c:270
#, c-format
msgid "INFO: Connecting to %s on port %d...\n"
msgstr ""
.\"
.\" cancel man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: cancel.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" classes.conf man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: classes.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" client.conf man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.SH SEE ALSO
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: client.conf.man.in 6649 2007-07-11 21:46:42Z mike $".
.\"
.\"
.\" rastertoescpx man page for the CUPS Driver Development Kit.
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.SH SEE ALSO
cupsprofile(1), ppdc(1), ppdhtml(1), ppdi(1), ppdmerge(1), ppdpo(1), ppdcfile(5), CUPS Driver Developer Kit Manual.
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: commandtoescpx.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" rastertopclx man page for the CUPS Driver Development Kit.
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.SH SEE ALSO
cupsprofile(1), ppdc(1), ppdhtml(1), ppdi(1), ppdmerge(1), ppdpo(1), ppdcfile(5), CUPS Driver Developer Kit Manual.
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: commandtopclx.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: cups-lpd.man.in 7835 2008-08-09 06:37:04Z mike $".
.\"
.\"
.\" cups-polld man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: cups-polld.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" snmp.conf man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.SH SEE ALSO
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: cups-snmp.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" cupsaddsmb man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
http://www.cups.org/windows/
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: cupsaddsmb.man.in 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" cupsctl man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: cupsctl.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" cupsd man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: cupsd.man.in 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" cupstestdsc man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
Adobe PostScript Language Document Structuring Conventions
Specification, Version 3.0.
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: cupstestdsc.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: filter.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\" which should have been included with this file. If this file is
.\" file is missing or damaged, see the license at "http://www.cups.org/".
.\"
-.TH lpadmin 8 "Common UNIX Printing System" "2 January 2008" "Apple Inc."
+.TH lpadmin 8 "Common UNIX Printing System" "3 November 2008" "Apple Inc."
.SH NAME
lpadmin \- configure cups printers and classes
.SH SYNOPSIS
-E
.br
Enables the printer and accepts jobs; this is the same as running the
-\fIaccept(8)\fR and \fIcupsenable(8)\fR programs on the printer.
+\fIcupsaccept(8)\fR and \fIcupsenable(8)\fR programs on the printer.
.TP 5
-L "location"
.br
The CUPS version of \fIlpadmin\fR does not support all of the
System V or Solaris printing system configuration options.
.SH SEE ALSO
-\fIaccept(8)\fR, \fIcupsenable(8)\fR, \fIlpinfo(8)\fR,
+\fIcupsaccept(8)\fR, \fIcupsenable(8)\fR, \fIlpinfo(8)\fR,
\fIlpoptions(1)\fR,
.br
http://localhost:631/help
.\"
.\" lpc man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" which should have been included with this file. If this file is
.\" file is missing or damaged, see the license at "http://www.cups.org/".
.\"
-.TH lpc 8 "Common UNIX Printing System" "12 February 2006" "Apple Inc."
+.TH lpc 8 "Common UNIX Printing System" "3 November 2008" "Apple Inc."
.SH NAME
lpc \- line printer control program
.SH SYNOPSIS
The CUPS version of \fIlpc\fR does not implement all of the
standard Berkeley or LPRng commands.
.SH SEE ALSO
-\fIaccept(8)\fR, \fIcancel(1)\fR, \fIcupsenable(8)\fR,
+\fIcancel(1)\fR, \fIcupsaccept(8)\fR, \fIcupsenable(8)\fR,
\fIlp(1)\fR, \fIlpr(1)\fR, \fIlprm(1)\fR, \fIlpstat(1)\fR,
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: lpc.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" lpmove man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: lpmove.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" lprm man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: lprm.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" mailto.conf man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: mailto.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" mime.convs man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: mime.convs.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" printers.conf man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: printers.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" subscriptions.conf man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: subscriptions.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
/usr/share/doc/cups/help/whatsnew.html
%dir /usr/share/doc/cups/images
/usr/share/doc/cups/images/*
-/usr/share/locale/*
+#/usr/share/locale/*
%dir /usr/share/man/man1
/usr/share/man/man1/cancel.1.gz
%files devel
%defattr(-,root,root)
+%dir /usr/share/cups/examples
+/usr/share/cups/examples/*
%dir /usr/share/man/man1
/usr/share/man/man1/cups-config.1.gz
/usr/share/man/man1/ppd*.1.gz
%dir /usr/share/doc/cups/help
/usr/share/doc/cups/help/api*.html
+/usr/share/doc/cups/help/postscript-driver.html
+/usr/share/doc/cups/help/ppd-compiler.html
+/usr/share/doc/cups/help/raster-driver.html
/usr/share/doc/cups/help/spec*.html
%files libs
ppdi.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h
ppdi.o: ../cups/versioning.h ../cups/i18n.h ../cups/transcode.h
ppdi.o: ../cups/language.h ../cups/array.h
-ppdmerge.o: ../cups/cups.h ../cups/array.h ../cups/versioning.h
-ppdmerge.o: ../cups/string.h ../config.h ../cups/i18n.h ../cups/transcode.h
-ppdmerge.o: ../cups/language.h ../cups/array.h
+ppdmerge.o: ../cups/ppd-private.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
+ppdmerge.o: ../cups/versioning.h ../cups/string.h ../cups/ppd.h
+ppdmerge.o: ../cups/array.h ../cups/file.h ../cups/language.h ../cups/cups.h
+ppdmerge.o: ../cups/array.h ../cups/string.h ../config.h ../cups/i18n.h
+ppdmerge.o: ../cups/transcode.h
ppdpo.o: ppdc.h ../cups/string.h ../config.h ../cups/file.h
ppdpo.o: ../cups/versioning.h ../cups/i18n.h ../cups/transcode.h
ppdpo.o: ../cups/language.h ../cups/array.h
# Install libraries...
#
-install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
+install-libs: $(INSTALLSTATIC)
echo Installing libraries in $(LIBDIR)...
$(INSTALL_DIR) -m 755 $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPSPPDC) $(LIBDIR)
//
// Contents:
//
+// ppdcCatalog::ppdcCatalog() - Create a shared message catalog.
+// ppdcCatalog::~ppdcCatalog() - Destroy a shared message catalog.
+// ppdcCatalog::add_message() - Add a new message.
+// ppdcCatalog::find_message() - Find a message in a catalog...
+// ppdcCatalog::load_messages() - Load messages from a .po file.
+// ppdcCatalog::save_messages() - Save the messages to a .po file.
+// get_utf8() - Get a UTF-8 character.
+// get_utf16() - Get a UTF-16 character...
+// put_utf8() - Add a UTF-8 character to a string.
+// put_utf16() - Write a UTF-16 character to a file.
//
//
string = text;
}
- messages->add(new ppdcMessage(id, text));
+ messages->add(new ppdcMessage(id, string));
}
{
// Add string...
add_message(id, str);
+ id[0] = '\0';
}
}
}
// Localizations are provided for all of the base languages supported by
// CUPS...
-#po da ""
-#po de ""
-#po es ""
-#po et ""
-#po fi ""
-#po fr ""
-#po he ""
-#po id ""
-#po it ""
-#po ja ""
-#po ko ""
-#po nl ""
-#po no ""
-#po pl ""
-#po pt ""
-#po pt_BR ""
-#po ru ""
-#po sv ""
-#po zh ""
-#po zh_TW ""
+//#po da ""
+//#po de ""
+//#po es ""
+//#po et ""
+//#po fi ""
+//#po fr ""
+//#po he ""
+//#po id ""
+//#po it ""
+//#po ja ""
+//#po ko ""
+//#po nl ""
+//#po no ""
+//#po pl ""
+//#po pt ""
+//#po pt_BR ""
+//#po ru ""
+//#po sv ""
+//#po zh ""
+//#po zh_TW ""
// MediaSize sizes used by label drivers...
#media "w81h252/Address - 1 1/8 x 3 1/2\"" 81 252
cups-driverd.o: ../cups/string.h ../config.h ../cups/dir.h
cups-driverd.o: ../cups/transcode.h ../cups/ppd-private.h ../cups/cups.h
cups-driverd.o: ../ppdc/ppdc.h
-# DO NOT DELETE
-
-filter.32.o: filter.c ../cups/debug.h ../cups/string.h ../config.h mime.h ../cups/array.h
-filter.32.o: filter.c ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/file.h
-mime.32.o: mime.c ../cups/debug.h ../cups/dir.h ../cups/versioning.h ../cups/string.h
-mime.32.o: mime.c ../config.h mime.h ../cups/array.h ../cups/ipp.h ../cups/http.h
-mime.32.o: mime.c ../cups/file.h
-type.32.o: type.c ../cups/string.h ../config.h mime.h ../cups/array.h
-type.32.o: type.c ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/file.h
-type.32.o: type.c ../cups/debug.h
-# DO NOT DELETE
-
-filter.64.o: filter.c ../cups/debug.h ../cups/string.h ../config.h mime.h ../cups/array.h
-filter.64.o: filter.c ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/file.h
-mime.64.o: mime.c ../cups/debug.h ../cups/dir.h ../cups/versioning.h ../cups/string.h
-mime.64.o: mime.c ../config.h mime.h ../cups/array.h ../cups/ipp.h ../cups/http.h
-mime.64.o: mime.c ../cups/file.h
-type.64.o: type.c ../cups/string.h ../config.h mime.h ../cups/array.h
-type.64.o: type.c ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/file.h
-type.64.o: type.c ../cups/debug.h
filter.o \
mime.o \
type.o
-LIB32OBJS = $(LIBOBJS:.o=.32.o)
-LIB64OBJS = $(LIBOBJS:.o=.64.o)
COBJS = \
$(CUPSDOBJS) \
$(LIBOBJS) \
- $(LIB32OBJS) \
- $(LIB64OBJS) \
cupsfilter.o \
cups-deviced.o \
cups-lpd.o \
$(CXXOBJS)
LIBTARGETS = \
$(LIBCUPSMIME) \
- $(LIB32CUPSMIME) \
- $(LIB64CUPSMIME) \
libcupsmime.a
UNITTARGETS = \
$(RM) $(OBJS)
$(RM) $(TARGETS) $(UNITTARGETS) convert
$(RM) libcupsmime.so libcupsmime.sl libcupsmime.dylib
- $(RM) -r 32bit 64bit
#
#
depend:
- touch Dependencies.tmp Dependencies.tmplib
- makedepend -Y -I.. -fDependencies.tmp $(COBJS:.o=.c) \
+ makedepend -Y -I.. -fDependencies $(COBJS:.o=.c) \
$(CXXOBJS:.o=.cxx) >/dev/null 2>&1
- makedepend -Y -I.. -fDependencies.tmplib $(LIBOBJS:.o=.c) >/dev/null 2>&1
- $(RM) Dependencies
- cp Dependencies.tmp Dependencies
- sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' \
- Dependencies.tmplib >>Dependencies
- sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' \
- Dependencies.tmplib >>Dependencies
- $(RM) Dependencies.tmp Dependencies.tmplib
#
# Install libraries...
#
-install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
+install-libs: $(INSTALLSTATIC)
echo Installing libraries in $(LIBDIR)...
$(INSTALL_DIR) -m 755 $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPSMIME) $(LIBDIR)
$(INSTALL_LIB) libcupsmime.a $(LIBDIR)
$(RANLIB) $(LIBDIR)/libcupsmime.a
-install32bit:
- echo Installing libraries in $(LIB32DIR)...
- $(INSTALL_DIR) -m 755 $(LIB32DIR)
- $(INSTALL_LIB) 32bit/libcupsmime.so.1 $(LIB32DIR)/libcupsmime.so.1
- $(LN) libcupsmime.so.1 $(LIB32DIR)/libcupsmime.so
-
-install64bit:
- echo Installing libraries in $(LIB64DIR)...
- $(INSTALL_DIR) -m 755 $(LIB64DIR)
- $(INSTALL_LIB) 64bit/libcupsmime.so.1 $(LIB64DIR)/libcupsmime.so.1
- $(LN) libcupsmime.so.1 $(LIB64DIR)/libcupsmime.so
-
#
# Uninstall the scheduler...
#
-uninstall: $(UNINSTALL32) $(UNINSTALL64)
+uninstall:
$(RM) $(SBINDIR)/cupsd
$(RM) $(SBINDIR)/cupsfilter
$(RM) $(SERVERBIN)/daemon/cups-deviced
$(RM) $(INCLUDEDIR)/cups/mime.h
-$(RMDIR) $(INCLUDEDIR)/cups
-uninstall32bit:
- $(RM) $(LIB32DIR)/libcupsmime.so
- $(RM) $(LIB32DIR)/libcupsmime.so.1
- -$(RMDIR) $(LIB32DIR)
-
-uninstall64bit:
- $(RM) $(LIB64DIR)/libcupsmime.so
- $(RM) $(LIB64DIR)/libcupsmime.so.1
- -$(RMDIR) $(LIB64DIR)
-
#
# Automatic API help files...
$(LN) $@ `basename $@ .1`
-#
-# 32bit/libcupsmime.so.1
-#
-
-32bit/libcupsmime.so.1: $(LIB32OBJS)
- echo Linking 32-bit $@...
- -mkdir 32bit
- $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBS)
- $(RM) 32bit/libcupsmime.so
- $(LN) libcupsmime.so.1 32bit/libcupsmime.so
-
-
-#
-# 64bit/libcupsmime.so.1
-#
-
-64bit/libcupsmime.so.1: $(LIB64OBJS)
- echo Linking 64-bit $@...
- -mkdir 64bit
- $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBS)
- $(RM) 64bit/libcupsmime.so
- $(LN) libcupsmime.so.1 64bit/libcupsmime.so
-
-
#
# libcupsmime.1.dylib
#
if (strcmp(con->uri, "*"))
{
- char method[HTTP_MAX_URI], /* Method/scheme */
+ char scheme[HTTP_MAX_URI], /* Method/scheme */
userpass[HTTP_MAX_URI], /* Username:password */
hostname[HTTP_MAX_URI], /* Hostname */
resource[HTTP_MAX_URI]; /* Resource path */
*/
httpSeparateURI(HTTP_URI_CODING_MOST, con->uri,
- method, sizeof(method),
+ scheme, sizeof(scheme),
userpass, sizeof(userpass),
hostname, sizeof(hostname), &port,
resource, sizeof(resource));
* address...
*/
- if (strcmp(method, "file") &&
+ if (strcmp(scheme, "file") &&
strcasecmp(hostname, ServerName) &&
strcasecmp(hostname, "localhost") &&
- !isdigit(hostname[0]))
+ !isdigit(hostname[0]) && hostname[0] != '[')
{
/*
* Nope, we don't do proxies...
break;
default :
+ if (!data_ready(con) && recv(con->http.fd, buf, 1, MSG_PEEK) < 1)
+ {
+ /*
+ * Connection closed...
+ */
+
+ cupsdCloseClient(con);
+ return;
+ }
break; /* Anti-compiler-warning-code */
}
return;
}
}
+ else if (httpAddrLocalhost(con->http.hostaddr) &&
+ strcasecmp(con->http.fields[HTTP_FIELD_HOST], "localhost") &&
+ strncasecmp(con->http.fields[HTTP_FIELD_HOST], "localhost:", 10) &&
+ strcmp(con->http.fields[HTTP_FIELD_HOST], "127.0.0.1") &&
+ strncmp(con->http.fields[HTTP_FIELD_HOST], "127.0.0.1:", 10) &&
+ strcmp(con->http.fields[HTTP_FIELD_HOST], "[::1]") &&
+ strncmp(con->http.fields[HTTP_FIELD_HOST], "[::1]:", 6))
+ {
+ /*
+ * Access to localhost must use "localhost" or the corresponding IPv4
+ * or IPv6 values in the Host: field.
+ */
+
+ cupsdLogMessage(CUPSD_LOG_WARN,
+ "Request from \"%s\" using invalid Host: field \"%s\"",
+ con->http.hostname, con->http.fields[HTTP_FIELD_HOST]);
+
+ if (!cupsdSendError(con, HTTP_BAD_REQUEST, CUPSD_AUTH_NONE))
+ {
+ cupsdCloseClient(con);
+ return;
+ }
+ }
else if (con->operation == HTTP_OPTIONS)
{
/*
return (0);
}
if (code == HTTP_METHOD_NOT_ALLOWED)
- if (httpPrintf(HTTP(con), "Allow: GET, HEAD, OPTIONS, POST\r\n") < 0)
+ if (httpPrintf(HTTP(con), "Allow: GET, HEAD, OPTIONS, POST, PUT\r\n") < 0)
return (0);
if (code == HTTP_UNAUTHORIZED)
ipp_attribute_t *attr; /* attributes-natural-language attribute */
#ifdef HAVE_GSSAPI
krb5_ccache ccache = NULL; /* Kerberos credentials */
+# if defined(HAVE_KRB5_CC_NEW_UNIQUE) || defined(HAVE_HEIMDAL)
char krb5ccname[1024]; /* KRB5CCNAME environment variable */
+# endif /* HAVE_KRB5_CC_NEW_UNIQUE || HAVE_HEIMDAL */
#endif /* HAVE_GSSAPI */
{
int i; /* Looping var */
const char *argv[8], /* Command-line arguments */
- *envp[11], /* Environment variables */
+ *envp[12], /* Environment variables */
*temp; /* Temporary string */
char *optstr, /* Filter options */
+ content_type[1024], /* CONTENT_TYPE */
cups_datadir[1024], /* CUPS_DATADIR */
cups_fontpath[1024], /* CUPS_FONTPATH */
cups_serverbin[1024], /* CUPS_SERVERBIN */
optstr = escape_options(num_options, options);
+ filter = cupsArrayFirst(filters);
+ snprintf(content_type, sizeof(content_type), "CONTENT_TYPE=%s/%s",
+ filter->src->super, filter->src->type);
snprintf(cups_datadir, sizeof(cups_datadir), "CUPS_DATADIR=%s", DataDir);
snprintf(cups_fontpath, sizeof(cups_fontpath), "CUPS_FONTPATH=%s", FontPath);
snprintf(cups_serverbin, sizeof(cups_serverbin), "CUPS_SERVERBIN=%s",
argv[4] = "1";
envp[0] = "<CFProcessPath>";
- envp[1] = cups_datadir;
- envp[2] = cups_fontpath;
- envp[3] = cups_serverbin;
- envp[4] = cups_serverroot;
- envp[5] = lang;
- envp[6] = path;
- envp[7] = ppd;
- envp[8] = rip_cache;
- envp[9] = userenv;
- envp[10] = NULL;
+ envp[1] = content_type;
+ envp[2] = cups_datadir;
+ envp[3] = cups_fontpath;
+ envp[4] = cups_serverbin;
+ envp[5] = cups_serverroot;
+ envp[6] = lang;
+ envp[7] = path;
+ envp[8] = ppd;
+ envp[9] = rip_cache;
+ envp[10] = userenv;
+ envp[11] = NULL;
for (i = 0; argv[i]; i ++)
fprintf(stderr, "DEBUG: argv[%d]=\"%s\"\n", i, argv[i]);
cupsArrayRemove(ActiveJobs, job);
cupsArrayRemove(PrintingJobs, job);
+#ifdef __APPLE__
+ /*
+ * If we are going to sleep and the PrintingJobs count is now 0, allow the
+ * sleep to happen immediately...
+ */
+
+ if (Sleeping && cupsArrayCount(PrintingJobs) == 0)
+ cupsdAllowSleep();
+#endif /* __APPLE__ */
+
/*
* Remove any authentication data...
*/
!printer->job)) /* and not printing */
{
/*
- * Clear any message and reasons for the queue...
+ * Clear any message for the queue...
*/
printer->state_message[0] = '\0';
- cupsdSetPrinterReasons(printer, "none");
-
/*
* Start the job...
*/
* launchd_checkout() - Check-out with launchd.
* parent_handler() - Catch USR1/CHLD signals...
* process_children() - Process all dead children...
+ * select_timeout() - Calculate the select timeout value.
* sigchld_handler() - Handle 'child' signals from old processes.
* sighup_handler() - Handle 'hangup' signals to reconfigure the
* scheduler.
* sigterm_handler() - Handle 'terminate' signals that stop the
* scheduler.
- * select_timeout() - Calculate the select timeout value.
* usage() - Show scheduler usage.
*/
if (DirtyCleanTime && current_time >= DirtyCleanTime)
cupsdCleanDirty();
+#ifdef __APPLE__
+ /*
+ * If we are going to sleep and still have pending jobs, stop them after
+ * a period of time...
+ */
+
+ if (SleepJobs > 0 && current_time >= SleepJobs &&
+ cupsArrayCount(PrintingJobs) > 0)
+ {
+ SleepJobs = 0;
+ cupsdStopAllJobs(0);
+ }
+#endif /* __APPLE__ */
+
#ifndef __APPLE__
/*
* Update the network interfaces once a minute...
}
-/*
- * 'sigchld_handler()' - Handle 'child' signals from old processes.
- */
-
-static void
-sigchld_handler(int sig) /* I - Signal number */
-{
- (void)sig;
-
- /*
- * Flag that we have dead children...
- */
-
- dead_children = 1;
-
- /*
- * Reset the signal handler as needed...
- */
-
-#if !defined(HAVE_SIGSET) && !defined(HAVE_SIGACTION)
- signal(SIGCLD, sigchld_handler);
-#endif /* !HAVE_SIGSET && !HAVE_SIGACTION */
-}
-
-
-/*
- * 'sighup_handler()' - Handle 'hangup' signals to reconfigure the scheduler.
- */
-
-static void
-sighup_handler(int sig) /* I - Signal number */
-{
- (void)sig;
-
- NeedReload = RELOAD_ALL;
- ReloadTime = time(NULL);
-
-#if !defined(HAVE_SIGSET) && !defined(HAVE_SIGACTION)
- signal(SIGHUP, sighup_handler);
-#endif /* !HAVE_SIGSET && !HAVE_SIGACTION */
-}
-
-
-/*
- * 'sigterm_handler()' - Handle 'terminate' signals that stop the scheduler.
- */
-
-static void
-sigterm_handler(int sig) /* I - Signal number */
-{
- (void)sig; /* remove compiler warnings... */
-
- /*
- * Flag that we should stop and return...
- */
-
- stop_scheduler = 1;
-}
-
-
/*
* 'select_timeout()' - Calculate the select timeout value.
*
timeout = now + 86400; /* 86400 == 1 day */
why = "do nothing";
+#ifdef __APPLE__
+ /*
+ * When going to sleep, wake up to cancel jobs that don't complete in time.
+ */
+
+ if (SleepJobs > 0 && SleepJobs < timeout)
+ {
+ timeout = SleepJobs;
+ why = "cancel jobs before sleeping";
+ }
+#endif /* __APPLE__ */
+
/*
* Check whether we are accepting new connections...
*/
}
+/*
+ * 'sigchld_handler()' - Handle 'child' signals from old processes.
+ */
+
+static void
+sigchld_handler(int sig) /* I - Signal number */
+{
+ (void)sig;
+
+ /*
+ * Flag that we have dead children...
+ */
+
+ dead_children = 1;
+
+ /*
+ * Reset the signal handler as needed...
+ */
+
+#if !defined(HAVE_SIGSET) && !defined(HAVE_SIGACTION)
+ signal(SIGCLD, sigchld_handler);
+#endif /* !HAVE_SIGSET && !HAVE_SIGACTION */
+}
+
+
+/*
+ * 'sighup_handler()' - Handle 'hangup' signals to reconfigure the scheduler.
+ */
+
+static void
+sighup_handler(int sig) /* I - Signal number */
+{
+ (void)sig;
+
+ NeedReload = RELOAD_ALL;
+ ReloadTime = time(NULL);
+
+#if !defined(HAVE_SIGSET) && !defined(HAVE_SIGACTION)
+ signal(SIGHUP, sighup_handler);
+#endif /* !HAVE_SIGSET && !HAVE_SIGACTION */
+}
+
+
+/*
+ * 'sigterm_handler()' - Handle 'terminate' signals that stop the scheduler.
+ */
+
+static void
+sigterm_handler(int sig) /* I - Signal number */
+{
+ (void)sig; /* remove compiler warnings... */
+
+ /*
+ * Flag that we should stop and return...
+ */
+
+ stop_scheduler = 1;
+}
+
+
/*
* 'usage()' - Show scheduler usage.
*/
cupsFilePrintf(fp, "StateTime %d\n", (int)printer->state_time);
for (i = 0; i < printer->num_reasons; i ++)
- cupsFilePutConf(fp, "Reason", printer->reasons[i]);
+ if (strcmp(printer->reasons[i], "connecting-to-device"))
+ cupsFilePutConf(fp, "Reason", printer->reasons[i]);
cupsFilePrintf(fp, "Type %d\n", printer->type);
ipp_tag_t value_tag; /* Value tag for this attribute */
+ /*
+ * Don't allow empty values...
+ */
+
+ if (!*value)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR, "Ignoring empty \"%s\" attribute", name);
+ return;
+ }
+
/*
* Count the number of values...
*/
p->num_reasons = 0;
+ cupsdMarkDirty(CUPSD_DIRTY_PRINTERS);
+
if (PrintcapFormat == PRINTCAP_PLIST)
cupsdMarkDirty(CUPSD_DIRTY_PRINTCAP);
}
if (!strcmp(reason, "paused") && p->state == IPP_PRINTER_STOPPED)
cupsdSetPrinterState(p, IPP_PRINTER_IDLE, 1);
+ if (strcmp(reason, "connecting-to-device"))
+ cupsdMarkDirty(CUPSD_DIRTY_PRINTERS);
+
if (PrintcapFormat == PRINTCAP_PLIST)
cupsdMarkDirty(CUPSD_DIRTY_PRINTCAP);
}
if (!strcmp(reason, "paused") && p->state != IPP_PRINTER_STOPPED)
cupsdSetPrinterState(p, IPP_PRINTER_STOPPED, 1);
+ if (strcmp(reason, "connecting-to-device"))
+ cupsdMarkDirty(CUPSD_DIRTY_PRINTERS);
+
if (PrintcapFormat == PRINTCAP_PLIST)
cupsdMarkDirty(CUPSD_DIRTY_PRINTCAP);
}
extern void cupsdLoadAllPrinters(void);
extern void cupsdRenamePrinter(cupsd_printer_t *p,
const char *name);
-extern char *cupsdSanitizeURI(const char *uri, char *buffer,
- int buflen);
extern void cupsdSaveAllPrinters(void);
extern int cupsdSetAuthInfoRequired(cupsd_printer_t *p,
const char *values,
* write.
* cupsdSetBusyState() - Let the system know when we are busy
* doing something.
+ * cupsdAllowSleep() - Tell the OS it is now OK to sleep.
* cupsdStartSystemMonitor() - Start monitoring for system change.
* cupsdStopSystemMonitor() - Stop monitoring for system change.
* sysEventThreadEntry() - A thread to receive power and computer
/* Netowrk interface key */
NetworkInterfaceKeyIPv6 = NULL;
/* Netowrk interface key */
+static cupsd_sysevent_t LastSysEvent; /* Last system event (for delayed sleep) */
/*
static void sysUpdate(void);
+/*
+ * 'cupsdAllowSleep()' - Tell the OS it is now OK to sleep.
+ */
+
+void
+cupsdAllowSleep(void)
+{
+ cupsdCleanDirty();
+
+ IOAllowPowerChange(LastSysEvent.powerKernelPort,
+ LastSysEvent.powerNotificationID);
+}
+
+
/*
* 'cupsdStartSystemMonitor()' - Start monitoring for system change.
*/
Sleeping = 1;
- cupsdStopAllJobs(0);
-
for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
p;
p = (cupsd_printer_t *)cupsArrayNext(Printers))
cupsdCleanDirty();
- IOAllowPowerChange(sysevent.powerKernelPort,
- sysevent.powerNotificationID);
+ /*
+ * If we have no printing jobs, allow the power change immediately.
+ * Otherwise set the SleepJobs time to 20 seconds in the future when
+ * we'll take more drastic measures...
+ */
+
+ if (cupsArrayCount(PrintingJobs) == 0)
+ IOAllowPowerChange(sysevent.powerKernelPort,
+ sysevent.powerNotificationID);
+ else
+ {
+ LastSysEvent = sysevent;
+ SleepJobs = time(NULL) + 20;
+ }
}
if (sysevent.event & SYSEVENT_WOKE)
VAR int Sleeping VALUE(0);
/* Non-zero if machine is entering or *
* in a sleep state... */
+VAR time_t SleepJobs VALUE(0);
+ /* Time when all jobs must be *
+ * canceled for system sleep. */
#ifdef __APPLE__
VAR int SysEventPipes[2] VALUE2(-1,-1);
/* System event notification pipes */
* Prototypes...
*/
+extern void cupsdAllowSleep(void);
extern void cupsdCleanDirty(void);
extern void cupsdMarkDirty(int what);
extern void cupsdSetBusyState(void);