unbind.ps (526B)
1 % 2 % Unbind the operators in an executable array or packedarray. Leaves the 3 % unbound array or the original object on the stack. 4 % 5 6 /unbind { 7 0 index xcheck 8 1 index type /arraytype eq 9 2 index type /packedarraytype eq or and { 10 dup length array copy cvx 11 dup 0 exch { 12 dup type /operatortype eq { 13 ( ) cvs cvn cvx 14 } if 15 16 0 index xcheck 17 1 index type /arraytype eq 18 2 index type /packedarraytype eq or and { 19 unbind 20 } if 21 22 3 copy put pop 23 1 add 24 } forall 25 pop 26 } if 27 } def 28