From 014f0e14a3c6a044d99a67c8f4e1c4065452479e Mon Sep 17 00:00:00 2001 From: Didier Raboud Date: Sun, 23 May 2010 00:05:04 +0200 Subject: Imported Upstream version 4.0-20090301 --- foomatic-gswrapper.in | 98 --------------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 foomatic-gswrapper.in (limited to 'foomatic-gswrapper.in') diff --git a/foomatic-gswrapper.in b/foomatic-gswrapper.in deleted file mode 100644 index d314c6a..0000000 --- a/foomatic-gswrapper.in +++ /dev/null @@ -1,98 +0,0 @@ -#!@PERL@ -# -*- perl -*- -# $Revision$ - -# This is a little Ghostscript regularization script. It massages -# arguments to make Ghostscript execute properly as a filter, with -# output on stdout and errors etc on stderr. - -# Arbitrary other option processing could happen here, too. - -# IT WOULD BE WRONG to have this file do any processing of the input -# or output data. Such job transforms belong in actual filters, or -# inside Ghostscript itself. - -my $prefix = "@prefix@"; -my $configpath = "@sysconfdir@/foomatic"; -# Read config file if present -%conf = readConfFile("$configpath/filter.conf"); - -# Set Ghostscript path -my $gspath = "gs"; -$gspath = $conf{gspath} if defined(%conf) and defined $conf{gspath}; -my $execpath = "@EXECPATH@"; -# Get execution path from config file -$execpath = $conf{execpath} if defined(%conf) and defined $conf{execpath}; -$ENV{'PATH'} = $execpath; - -# Check whether we have a Ghostscript version with redirection of the -# standard output of the PostScript programs via '-sstdout=%stderr' -my $gswithstdoutredirection = 0; -if (`$gspath -dQUIET -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOMEDIAATTRS -sDEVICE=pswrite -sstdout=%stderr -sOutputFile=/dev/null -c '(hello\n) print flush' 2>&1` =~ /hello/) { - $gswithstdoutredirection = 1; -} - -grep (m!\-sOutputFile=\-! - && do { - # If Ghostscript does not support redirecting the standard output - # of the PostScript program to standard error with - # '-sstdout=%stderr', sen the job output data to fd 3; errors - # will be on 2(stderr) and job ps program interpreter output on - # 1(stdout). - $_ = ($gswithstdoutredirection ? - '-sOutputFile=%stdout' : '-sOutputFile=/dev/fd/3'); - # quoted properly below... - }, @ARGV); - -grep (((m!^\-$!) || (m!^\-_$!) || (m!^/dev/fd/0$!)) - && do { - # Use always buffered input. This works around a Ghostscript - # bug which prevents printing encrypted PDF files with Adobe - # Reader 8.1.1 and Ghostscript built as shared library - # (Ghostscript bug #689577, Ubuntu bug #172264) - $_ = "-_"; - }, @ARGV); - -# Turn *off* -q (quiet!); now that stderr is useful! :) -my @myargs = grep (! m!^\-q$!, @ARGV); - -# Escape any quotes, and then quote everything just to be sure... - -# Escaping a single quote inside single quotes is a bit complex as the shell -# takes everything literal there. So we have to assemble it by concatinating -# different quoted strings. -# Finally we get e.g.: 'x'"'"'y' or ''"'"'xy' or 'xy'"'"'' or ... -grep (s/\'/\'\"\'\"\'/g, @myargs); -my $args = "'" . join("' '", @myargs) . "'"; - -# Execute Ghostscript, with both job and gs errors on stderr, and job -# output on stdout... - -if ($gswithstdoutredirection) { - $args = "'-sstdout=\%stderr' $args"; - print STDERR "foomatic-gswrapper: $gspath $args\n"; - exec "$gspath $args"; -} else { - print STDERR "foomatic-gswrapper: $gspath $args 3>&1 1>&2\n"; - exec "$gspath $args 3>&1 1>&2"; -} - -die "Failed to execute Ghostscript?!"; - -# Read the config file - -sub readConfFile { - my ($file) = @_; - - my %conf; - # Read config file if present - if (open CONF, "< $file") { - while () - { - $conf{$1}="$2" if (m/^\s*([^\#\s]\S*)\s*:\s*(.*?)\s*$/); - } - close CONF; - } - - return %conf; -} -- cgit v1.2.3