In metafun, a colored dotlabel fails.  A fix is included below.

Here is a minimal test file:

  beginfig(1)
    dotlabel(btex etex, origin) withcolor green;
  endfig;
  end

It produces this error:

  $ mpost -mem=metafun t
  This is MetaPost, Version 0.993 (Web2C 7.5.6)
  (t.mp
  ! Extra tokens will be flushed.
  <to be read again> 
                     withcolor
  l.2   dotlabel(btex etex, origin) withcolor
                                              green;
  ? 

[I'm using the metafun that was built from context 2007.04.17.]

Metapost used to have this problem, for which John Hobby sent the
following updated definition of dotlabel():

  vardef [EMAIL PROTECTED](expr s,z) text t_ =
    [EMAIL PROTECTED](s,z) t_;
    interim linecap:=rounded;
    draw z withpen pencircle scaled dotlabeldiam t_;
  enddef;

It is part of the current plain.mp (mpost 0.993).  But the metafun.mp
format-generation file includes mp-base.mp, which has the old definition
of dotlabel:

  vardef [EMAIL PROTECTED](expr s,z) =
    [EMAIL PROTECTED](s,z);
    interim linecap:=rounded;
    draw z withpen pencircle scaled dotlabeldiam;
  enddef;

The patch below fixes the minimal test case above as well as the
larger real file that I started with:

--- a/metapost/context/base/mp-base.mp  2007-07-25 00:19:15.379198092 -0400
+++ b/metapost/context/base/mp-base.mp  2007-07-25 00:19:37.072411646 -0400
@@ -477,10 +477,10 @@
 
 def label = draw thelabel enddef;
 newinternal dotlabeldiam; dotlabeldiam:=3bp;
-vardef [EMAIL PROTECTED](expr s,z) =
-  [EMAIL PROTECTED](s,z);
+vardef [EMAIL PROTECTED](expr s,z) text t_ =
+  [EMAIL PROTECTED](s,z) t_;
   interim linecap:=rounded;
-  draw z withpen pencircle scaled dotlabeldiam;
+  draw z withpen pencircle scaled dotlabeldiam t_;
 enddef;
 def makelabel = dotlabel enddef;
 
_______________________________________________
dev-context mailing list
[email protected]
http://www.ntg.nl/mailman/listinfo/dev-context

Reply via email to