<html><head>
<style>pre,code,address {
margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
margin-top: 0.2em;
margin-bottom: 0.2em;
}
ol,ul {
margin-top: 0em;
margin-bottom: 0em;
}
blockquote {
margin-top: 0em;
margin-bottom: 0em;
}
</style></head>
<body><div>On Tue, 2023-10-03 at 17:05 -0600, Bob Hallissy wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div><br></div><div>On 9/23/2023 1:02 PM, Laurence Penney wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div><br></div><div>All the off-curve points between two on-curve points (with wrap-around) must either</div><div>have the CUBIC flag clear, or have the CUBIC flag set.</div></blockquote><div><br></div><div> I find the above ambiguous </div></blockquote><div><br></div><div>Yes, i did too, and reworded it. Thanks! This is what i have right now in the draft for the next version i'll be posting in a few days:</div><div><br></div><div>[[</div><div><br></div>
<title></title>
<meta name="generator" content="LibreOffice 7.6.1.2 (Linux)">
<style type="text/css">
@page { size: 21cm 29.7cm; margin: 2cm }
p { line-height: 0.42cm; text-align: left; orphans: 0; widows: 0; margin-bottom: 0.42cm; direction: ltr; background: transparent; page-break-before: auto }
p.western { font-family: "Cambria", serif; font-size: 11pt }
p.cjk { font-family: "Arial"; font-size: 12pt }
p.ctl { font-family: "Arial"; font-size: 12pt }
a:visited { color: #954f72; text-decoration: underline }
em { font-style: italic }
a:link { color: #0000ff; text-decoration: underline }
</style>
<div>
<font size="2" style="font-size: 11pt"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; background-color: inherit;">If
the CUBIC flag is non-zero, the corresponding off-curve point belongs
to a Cubic Bézier path segment, and all of the following conditions
shall be met:</span></font></div><div><font size="2" style="font-size: 11pt"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; background-color: inherit;"><br></span></font></div>
<ul>
<li><div>
<span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; background-color: inherit;">The number of consecutive cubic
off-curve points within a contour (without wrap-around) is even.</span></div><div><span style="background-color: inherit;"><br></span></div></li>
<li><div>
<span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; background-color: inherit;">Either all the off-curve points
between any two on-curve points (with wrap-around) have the CUBIC
flag clear, or they all have the CUBIC flag set.</span></div><div><span style="background-color: inherit;"><br></span></div></li>
<li><div>
<span style="background-color: inherit;"><em><span style="font-style: normal"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box;">Th</span></span></em><em><span style="font-style: normal"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box;">e
CUBIC </span></span></em><em><span style="font-style: normal"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box;">flag
</span></span></em><em><span style="font-style: normal"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box;">shall
</span></span></em><em><span style="font-style: normal"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box;">only
be </span></span></em><em><span style="font-style: normal"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box;">set
to 1</span></span></em><em><span style="font-style: normal"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box;">
on off-curve points. For on-curve points it is reserved and shall b</span></span></em><em><span style="font-style: normal"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box;">e set to zero.</span></span></em></span></div><div><em><span style="font-style: normal"><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; background-color: inherit;"><br></span></span></em></div></li>
</ul>
<div><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; background-color: inherit;">Every
consecutive two off-curve points that have the CUBIC bit set define a
cubic Bézier segment. Within any consecutive set of cubic off-curve
points within a contour (with wrap-around), an implied on-curve point
is inserted by the font processor at the mid-point between every
second off-curve point and the next one.</span></div><div><span style="background-color: inherit;"><br></span></div>
<div><span style="background-image: none; background-position: 0%; background-size: auto; background-repeat: repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; background-color: inherit;">If there are no
on-curve points and all (even number of) off-curve points are CUBIC,
the first off-curve point shall be considered the first control-point
of a cubic Bézier curve, and the font processor shall insert implied
on-curve points between the every second point and the next one as
usual</span><span style="background: #ffff00">.</span></div><div><br></div><div>]]</div><div><br></div><div>I don't want to share the whole text yet, because it's not consistent; the previous version is at</div><div><a href="https://github.com/harfbuzz/boring-expansion-spec/tree/main/iso_docs">https://github.com/harfbuzz/boring-expansion-spec/tree/main/iso_docs</a></div><div>under September.</div><div>Here's the previous version:</div><div><br></div><div>[[</div><div>There are several restrictions on how the CUBIC flag can be used. If any
of the conditions below are not met, the behavior is undefined.</div>
<ul dir="auto">
<li>The number of consecutive cubic off-curve points within a contour
(without wrap-around) is even.</li>
<li>Either all the off-curve points between any two on-curve points (with
wrap-around) have the CUBIC flag clear, or they all have the CUBIC
flag set.</li>
<li><strong>Th</strong>e CUBIC **flag **shall <strong>only be set to 1 on off-curve
points. It is <em>reserved</em> and <em>must</em> be set to zero for on-curve
points.</strong></li>
</ul>
<div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>]]</div></blockquote><div><br></div><div>(pasted from the markdown, which has some minor formatting problems i see)</div><div><br></div><div>As we discuss what the behaviour should actually be when those three conditions are not met, i'll update the text.</div><div><br></div><div>liam</div><div><br></div><div><span><pre>-- <br></pre><pre>Liam Quin, https://www.delightfulcomputing.com/
Available for XML/Document/Information Architecture/XSLT/
XSL/XQuery/Web/Text Processing/A11Y training, work & consulting.
Barefoot Web-slave, antique illustrations: http://www.fromoldbooks.org
</pre></span></div></body></html>