Blob


1 #!/usr/local/plan9/bin/rc
3 # extract pages $OLIST from postscript on stdin
5 if(~ $OLIST '')
6 exec cat
8 awk '
9 BEGIN {
10 x=ENVIRON["OLIST"];
11 gsub(/^-o/, "", x);
12 na = split(x, a, ",");
13 header = 1;
14 goodpage = 0;
15 }
17 header || goodpage {
18 print
19 }
21 /^%%EndSetup[ ]*$/ { header = 0; next }
23 /^%%Page:/ {
24 header = 0;
25 p=$2+0;
26 goodpage = 0;
27 for(i=1; i<=na; i++){
28 if(aa=match(a[i], "-")){
29 low=substr(a[i], 1, RSTART);
30 high=substr(a[i], RSTART+RLENGTH);
31 if(low == "")
32 low = 0;
33 else
34 low = low+0;
35 if(high == "")
36 high = 100000;
37 else
38 high = high+0;
39 if(low <= p && p <= high){
40 goodpage = 1;
41 break;
42 }
43 }else{
44 if(a[i] == p){
45 goodpage = 1;
46 break;
47 }
48 }
49 }
50 }
52 /^%%EndPage[ ]*$/ {
53 goodpage = 0;
54 }
56 /^%%Trailer[ ]*$/ {
57 goodpage = 1;
58 }
60 '