Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#!/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;
}

'