On 2013–08–24 Hans Hagen wrote:

>     startplaincompatibity ;
> 
>         label("first", origin);
> 
>         pair laboff.foo ; laboff.foo := (.5,-1) ;
>         labxf.foo := labyf.foo := 1 ;
> 
>         label.foo("second", origin);
> 
>     stopplaincompatibity ;

Brilliant! Thanks a lot. A few things:

1) Can you replace

  def useplainlabels =
    let label    = plain_label ;
    let thelabel = plain_thelabel ;
  enddef ;

with

  def useplainlabels =
    def label    = plain_label    enddef ;
    def thelabel = plain_thelabel enddef ;
  enddef ;

The minimal example works with your version, but the old MetaPost
code does not. The def variant works fine with both.

2) Replace

  startplaincompatibity  →  startplaincompatibility
   stopplaincompatibity  →  stopplaincompatibility

3) This one is truly optional and just a suggestion for a better
interface. Although it's nice to have the grouping in
start-stopplaincompatibility, it's not required here, since the
entire MetaPost instance runs in plain compatibility mode. It would
be nice to either have a non-grouped command:

  def plaincompatibility =
    scantokens plain_compatibity_data ;
  enddef ;

Or maybe even a higher-level switch:

  \defineMPinstance
    [fun-with-old-MP]
    [metafun]
    [compatibility=plain] %% default* | plain

> As I wouldn't be surprised if there were more differences we need
> to handle.

We will find out if things break.

Marco

Attachment: signature.asc
Description: Digital signature

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to