#!/usr/local/plan9/bin/rc
if (! ~ $DEBUG '') flag x +
PATCH='%!PS
%%Patch from lp'
switch ($LPCLASS) {
case *hp4simx*;
	PATCH=$PATCH'
%% set the default papertray to be the lower tray for HP4siMX printers
	statusdict begin defaultpapertray end 1 ne {
		statusdict begin
			1 setdefaultpapertray
		end
	} if'
}
for (i in `{echo $IBIN|awk -F, '{ n=split($0, a, ","); for (i=1;i<=n;i++) print a[i]; }'}) {
	switch ($i) {
	case -P*;
	case man manual manualfeed;
		PATCH=$PATCH'
%%BeginFeature: *Select ManualFeed
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
    << /ManualFeed true >> setpagedevice
   } {statusdict begin /manualfeed true def end} ifelse
 } stopped cleartomark
%%EndFeature'
	case simplex;
		DUPLEX=0
	case [0-9];
		PATCH=$PATCH'
%%BeginFeature: *Select InputTray
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
	<< '$i' << /MediaType (tray'$i') >> >>
    << /MediaType (tray'$i') >> setpagedevice
   } {statusdict begin '$i' setpapertray end} ifelse
 } stopped cleartomark
%%EndFeature'
	case 11x17 [Ll]edger;
		PATCH=$PATCH'
%%BeginFeature: *Select Ledger
[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if {
    << /PageSize [792 1224] >> setpagedevice
   } {statusdict begin '$i'tray end} ifelse
 } stopped cleartomark
%%EndFeature'
	case transparency vg viewgraph;
		PATCH=$PATCH'
%%BeginFeature: *Select Transparency
[{ << /MediaType (Transparency) >> setpagedevice
 } stopped cleartomark
%%EndFeature'
	case *;
		echo illegal option ''''-i $i'''' ignored >[1=2]
	}
}
#if (! ~ $#DUPLEX 0) {
#	if (~ $DUPLEX 1 )
#		PATCH=$PATCH'
#statusdict /setduplexmode known {statusdict begin true setduplexmode end} if';
#	if (~ $DUPLEX 0 )
#		PATCH=$PATCH'
#statusdict /setduplexmode known {statusdict begin false setduplexmode end} if';
#}
PATCH=$PATCH'
%%EndPatch from lp
'

{ echo $PATCH; psextract } | $LPLIB/process/hpost

