Bug 126403 - a2ps: psset duplex corrupts postscript with ^Ountdictstack instead of countdictstack
Bug#: 126403 Product:  Gentoo Linux Version: unspecified Platform: All
OS/Version: Other Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: printing@gentoo.org Reported By: gentoo@spodhuis.org
Component: Printing
URL: 
Summary: a2ps: psset duplex corrupts postscript with ^Ountdictstack instead of countdictstack
Keywords:  
Status Whiteboard: 
Opened: 2006-03-16 03:43 0000
Description:   Opened: 2006-03-16 03:43 0000
app-text/a2ps ships psset (shell script); psset -d (to set duplex) creates
corrupt postscript.
See also: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=163780
which notes that it only happens with some versions of sed installed; (I'd
comment there but don't want Yet Another Bugzilla Logon).

It's caused by an attempt (using sed) to escape leading whitespace in a
postscript fragment for insertion by a sed filter; it actually inserts a
backslash at the start of every line.  It's this which causes the final sed
filter invocation to see \countdictstack, \c for control, control-O, resulting
in ^Ountdictstack.

Fix is to only escape a leading space with a backslash, instead of inserting a
backslash at the start of every line.

--- t   2006-03-16 12:30:48.000000000 +0100
+++ /usr/bin/psset      2006-03-16 12:28:14.000000000 +0100
@@ -241,7 +241,7 @@
 # spaces with a `\' too...
 pspagedevicelen=`echo "$pspagedevice" | wc -l`
 pspagedevice=`echo "$pspagedevice" | \
- sed -e "$pspagedevicelen!s/\$/\\\\\\/;s/^/\\\\\\/"`
+ sed -e "$pspagedevicelen!s/\$/\\\\\\/;s/^ /\\\\\\/"`

 case $at in
   0) # Insert last in the Setup, so that we win over other requests.

------- Comment #1 From Stefan Schweizer 2006-06-01 16:31:42 0000 -------
thanks, I added your patch to a2ps-4.13c-r5.ebuild