• Errors in the PostScript Language Reference Manual third edition

    From jdaw1@21:1/5 to All on Sun Sep 1 07:19:48 2019
    Page 538 says that ‘bind’ takes a single parameter ‘proc’. But bind also works with non-procedure non-executable arrays, thus:
    [ {…} {…} … ] bind
    which correctly binds the inner {…}s.

    Test code:

    %!PS

    /testProcs [ {currentpoint} ] def
    testProcs 0 get 0 get type =
    testProcs 0 get 0 get ==
    () =
    testProcs bind 0 get 0 get type =
    testProcs bind 0 get 0 get ==

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From jdaw1@21:1/5 to All on Sun Sep 1 07:15:42 2019
    This thread is to hold errors in PLRM3.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Newall@21:1/5 to All on Sat Jan 22 13:46:18 2022
    Apologies for the followup of a 30-month old posting. I have just
    started reading this group.

    On 2/9/19 12:19 am, jdaw1 wrote:
    Page 538 says that ‘bind’ takes a single parameter ‘proc’. But bind also works with non-procedure non-executable arrays, thus:
    [ {…} {…} … ] bind
    which correctly binds the inner {…}s.s

    I think this is not an error. PostScript Language Reference 3rd
    edition, 3.12.1, p118, says:

    "The effect of bind applies not only to the procedure being bound but
    to all subsidiary procedures (executable arrays or executable packed
    arrays) contained within it, nested to arbitrary depth."

    Hence, [/print cvx] bind becomes [--print--].

    What is not obvious in the reference manual is that "procedure" does
    not necessarily mean "executable array". It seems to mean any array.

    On reflection, perhaps this is not surprising.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)