| #!/usr/local/plan9/bin/rc |
| |
| # extract pages $OLIST from postscript on stdin |
| |
| if(~ $OLIST '') |
| exec cat |
| |
| awk ' |
| BEGIN { |
| x=ENVIRON["OLIST"]; |
| gsub(/^-o/, "", x); |
| na = split(x, a, ","); |
| header = 1; |
| goodpage = 0; |
| } |
| |
| header || goodpage { |
| print |
| } |
| |
| /^%%EndSetup[ ]*$/ { header = 0; next } |
| |
| /^%%Page:/ { |
| header = 0; |
| p=$2+0; |
| goodpage = 0; |
| for(i=1; i<=na; i++){ |
| if(aa=match(a[i], "-")){ |
| low=substr(a[i], 1, RSTART); |
| high=substr(a[i], RSTART+RLENGTH); |
| if(low == "") |
| low = 0; |
| else |
| low = low+0; |
| if(high == "") |
| high = 100000; |
| else |
| high = high+0; |
| if(low <= p && p <= high){ |
| goodpage = 1; |
| break; |
| } |
| }else{ |
| if(a[i] == p){ |
| goodpage = 1; |
| break; |
| } |
| } |
| } |
| } |
| |
| /^%%EndPage[ ]*$/ { |
| goodpage = 0; |
| } |
| |
| /^%%Trailer[ ]*$/ { |
| goodpage = 1; |
| } |
| |
| ' |