| 
#!/bin/rc
# pdf2ps [-e] [gs-options] [input.pdf [output.ps]] - generate (e)ps from pdf
rfork e
fn usage {
	echo 'usage: pdf2ps [-e] [gs-options] [input.pdf [output.ps]]' >[1=2]
	exit usage
}
outdev=pswrite
fin=/fd/0
fout=/fd/1
lang=(-'dLanguageLevel=2')
opt=()
while(! ~ $#* 0 && ~ $1 -* && ! ~ $1 - --){
	if(~ $1 '-dLanguageLevel='*)
		lang=()
	if not if(~ '-?' $1)
		usage
	if(~ $1 -e)
		outdev=epswrite
	if not
		opt=($opt $1)
	shift
}
if(~ $1 --)
	shift
switch($#*){
case 0
	;
case 1
	fin=$1
case 2
	fin=$1
	fout=$2
case *
	usage
}
if(~ $fin -)
	fin=/fd/0
if(~ $fout -)
	fout=/fd/1
# Doing an inital `save' helps keep fonts from being flushed between
# pages.  We have to include the options twice because -I only takes
# effect if it appears before other options.
exec gs $opt -dSAFER -dNOPAUSE -dBATCH -q -s'DEVICE='$outdev $opt $lang \
	-s'OutputFile=-' -c save pop -f $fin >$fout
 |