summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDidier Raboud <didier@raboud.com>2010-05-23 00:04:52 +0200
committerDidier Raboud <didier@raboud.com>2010-05-23 00:04:52 +0200
commit0743a0a49409ef8ee98d0052154f638aace291d7 (patch)
treea9302cdd6deaa04ab51a36fd72901259063d10ed
parent2e1e8345749b1863af8d804c2ce351836f282368 (diff)
Imported Upstream version 3.0.2-20061031upstream/3.0.2-20061031
-rw-r--r--ChangeLog15
-rw-r--r--foomatic-gswrapper.in39
-rw-r--r--foomatic-rip.in2
3 files changed, 44 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index f34f5ce..7ce4dd7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2006-10-03 Till Kamppeter <till.kamppeter@gmail.com>
+
+ * foomatic-rip.in: Fixed bashism.
+
+2006-08-27 Till Kamppeter <till.kamppeter@gmx.net>
+
+ * foomatic-gswrapper.in: Support for built-in redirection of
+ standard output of PostScript programs ("-sstdout=%stderr") in
+ newer GhostScript versions. More reliable then using /dev/fd/3
+ (not always available difficult to check presence) or '|cat >3'
+ (not seekable and some GhostScript output devices require
+ seekability of the output file),
+
2006-07-10 Norm Jacobs <Norm.Jacobs@Sun.COM>
* *: Removed executable permissions from source files which are
@@ -5,7 +18,7 @@
2006-06-15 Norm Jacobs <Norm.Jacobs@Sun.COM>
- * foomatid-rip.in: failing to open IPP attributes file shouldn't be
+ * foomatic-rip.in: failing to open IPP attributes file shouldn't be
fatal
2006-06-01 Norm Jacobs <Norm.Jacobs@Sun.COM>
diff --git a/foomatic-gswrapper.in b/foomatic-gswrapper.in
index da0c29a..e6b1049 100644
--- a/foomatic-gswrapper.in
+++ b/foomatic-gswrapper.in
@@ -25,19 +25,32 @@ my $execpath = "@EXECPATH@";
$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 {
- # Send the job to fd 3; errors will be on 2(stderr) and job
- # ps program interpreter output on 1(stdout).
- $_ = '-sOutputFile=/dev/fd/3';
+ # 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!^\-_$!))
- && do {
- # Get the input from fd 0.
- $_ = "/dev/fd/0";
- }, @ARGV);
+if (!$gswithstdoutredirection) {
+ grep (((m!^\-$!) || (m!^\-_$!))
+ && do {
+ # Get the input from fd 0.
+ $_ = "/dev/fd/0";
+ }, @ARGV);
+}
# Turn *off* -q (quiet!); now that stderr is useful! :)
my @myargs = grep (! m!^\-q$!, @ARGV);
@@ -54,8 +67,14 @@ my $args = "'" . join("' '", @myargs) . "'";
# Execute Ghostscript, with both job and gs errors on stderr, and job
# output on stdout...
-print STDERR "foomatic-gswrapper: $gspath $args 3>&1 1>&2\n";
-exec "$gspath $args 3>&1 1>&2";
+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?!";
diff --git a/foomatic-rip.in b/foomatic-rip.in
index 9af8c14..a681753 100644
--- a/foomatic-rip.in
+++ b/foomatic-rip.in
@@ -6116,7 +6116,7 @@ sub buildpdqdriver {
" # Custom page size settings\n",
" # We aren't really checking for " .
"legal vals.\n",
- " if [ \"x\${$varn}\" == 'x$val' ]; " .
+ " if [ \"x\${$varn}\" = 'x$val' ]; " .
"then\n",
" $varn=\"\${$varn}.\${PageWidth}" .
"x\${PageHeight}\${PageSizeUnit}\"\n",