stroke-linecap on zero length subpaths

One of the changes we made in SVG 1.1F2 was to make zero length subpaths
paint their linecaps if stroke-linecap is round or square (previously it
was just for round).  So in painting.html we have:

  A subpath (see Paths) consisting of a single moveto shall not be
  stroked. Any zero length subpath shall not be stroked if the
  ‘stroke-linecap’ property has a value of butt but shall be stroked if
  the ‘stroke-linecap’ property has a value of round or square,
  producing respectively a circle or a square centered at the given
  point. Examples of zero length subpaths include 'M 10,10 L 10,10',
  'M 20,20 h 0', 'M 30,30 z' and 'M 40,40 c 0,0 0,0 0,0'.

But in implnote.html we have:

  If ‘stroke-linecap’ is set to butt and the given path segment has zero
  length, do not draw the linecap for that segment; however, do draw the
  linecap for zero-length path segments when ‘stroke-linecap’ is set to
  either round or square. (This allows round and square dots to be drawn
  on the canvas.)

This should be talking about zero length subpaths rather than zero
length path segments; we don’t want 'M 10,10 h 0 h 0' to draw more than
one pair of linecaps.  It’s also redundant with the requirements in
painting.html.  So I suggest that we either replace it with:

  As mentioned in _Stroke Properties_[painting.html#StrokeProperties],
  linecaps must be painted for zero length subpaths when
  ‘stroke-linecap’ has a value of round or square.

or remove it altogether.

Cameron McCormack ≝

Received on Tuesday, 18 January 2011 22:52:15 UTC