/usr/bin/ps2epsi is in ghostscript 9.22~dfsg+1-0ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | #!/bin/sh
# This definition is changed on install to match the
# executable name set in the makefile
GS_EXECUTABLE=gs
gs="`dirname \"$0\"`/$GS_EXECUTABLE"
if test ! -x "$gs"; then
gs="$GS_EXECUTABLE"
fi
GS_EXECUTABLE="$gs"
# try to create a temporary file securely
if test -z "$TMPDIR"; then
TMPDIR=/tmp
fi
if which mktemp >/dev/null 2>/dev/null; then
tmpfile="`mktemp $TMPDIR/ps2epsi.XXXXXX`"
else
tmpdir=$TMPDIR/ps2epsi.$$
(umask 077 && mkdir "$tmpdir")
if test ! -d "$tmpdir"; then
echo "failed: could not create temporary file"
exit 1
fi
tmpfile="$tmpdir"/ps2epsi$$
fi
trap "rm -rf \"$tmpfile\"" 0 1 2 3 7 13 15
export outfile
if [ $# -lt 1 -o $# -gt 2 ]; then
echo "Usage: `basename \"$0\"` file.ps [file.epsi]" 1>&2
exit 1
fi
infile=$1;
if [ $# -eq 1 ]
then
case "${infile}" in
*.ps) base=`basename "${infile}" .ps` ;;
*.cps) base=`basename "${infile}" .cps` ;;
*.eps) base=`basename "${infile}" .eps` ;;
*.epsf) base=`basename "${infile}" .epsf` ;;
*) base=`basename "${infile}"` ;;
esac
outfile=${base}.epsi
else
outfile=$2
fi
"$GS_EXECUTABLE" -q -dBATCH -dNOPAUSE -P- -dSAFER -dDELAYSAFER -sDEVICE=bbox -sOutputFile=/dev/null "${infile}" 2>${outfile}
ls -l "${infile}" |
awk 'F==1 {
cd="%%CreationDate: " $6 " " $7 " " $8;
t="%%Title: " $9;
f="%%For:" U " " $3;
c="%%Creator: Ghostscript ps2epsi from " $9;
next;
}
/^%!/ {next;}
/^%%Title:/ {t=$0; next;}
/^%%Creator:/ {c=$0; next;}
/^%%CreationDate:/ {cd=$0; next;}
/^%%For:/ {f=$0; next;}
!/^%/ {
print "/ps2edict 30 dict def";
print "ps2edict begin";
print "/epsititle (" t "\\n) def";
print "/epsicreator (" c "\\n) def";
print "/epsicrdt (" cd "\\n) def";
print "/epsifor (" f "\\n) def";
exit(0);
}
' U="$USERNAME$LOGNAME" F=1 - F=2 "${infile}" >"$tmpfile"
ls -l "${outfile}" |
awk 'F==1 {
b="%%BoundingBox: 0 0 0 0\\n";
}
/^%%BoundingBox:/ {b=$0; next;}
/^%%HiResBoundingBox:/ {
hb=$0;
print "ps2edict where {pop} {/ps2edict 30 dict def} ifelse";
print "ps2edict begin";
print "/BBoxString (" b "\\n) def";
print "/HiresBBoxString (" hb "\\n) def";
print "end";
exit(0);
}
' F=1 - F=2 "${outfile}" >>"$tmpfile"
"$GS_EXECUTABLE" -q -dNOPAUSE -P- -dSAFER -dDELAYSAFER -r72 -sDEVICE=bit -sOutputFile=/dev/null "$tmpfile" ps2epsi.ps "$tmpfile" <"${infile}" 1>&2
rm -f "$tmpfile"
rm -rf "$tmpdir"
(
cat << BEGINEPS
save countdictstack mark newpath /showpage {} def /setpagedevice /pop load def
%%EndProlog
%%Page 1 1
BEGINEPS
cat "${infile}" |
LC_ALL=C \
sed -e '/^%%BeginPreview:/,/^%%EndPreview[^!-\~]*$/d' -e '/^%!PS-Adobe/d'\
-e '/^%%[A-Za-z][A-Za-z]*[^!-\~]*$/d' -e '/^%%[A-Za-z][A-Za-z]*: /d'
cat << ENDEPS
%%Trailer
cleartomark countdictstack exch sub { end } repeat restore
%%EOF
ENDEPS
) >> "${outfile}"
exit 0
|