Skip to content

Commit

Permalink
Address review comments.
Browse files Browse the repository at this point in the history
  • Loading branch information
garretrieger committed Feb 6, 2025
1 parent bad024e commit c4cc866
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 160 deletions.
123 changes: 44 additions & 79 deletions Overview.bs
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ information about the patch which should be applied when the entry is matched. [
<tr><th>Key</th><th>Value</th></tr>
<tr>
<td>
* [=font subset definition=]: defines the basic coverage.
* [=font subset definition=]: defines the base coverage.
* References to zero or more child [=patch map entries|Patch Map Entry=]'s:<br/>
these child entries are used to extend the coverage.
* Child entry match mode, which can be either conjunctive or disjunctive.
Expand Down Expand Up @@ -543,176 +543,141 @@ The algorithm:
When checking design space sets for intersection, they intersect if there is at least one pair of intersecting segments
(tags are equal and the ranges intersect).

2. If one or more sets checked in step 1 did not intersect, then return false for <var>intersects</var>.
2. If one or more sets checked in step 1 did not intersect, then set <var>intersects</var> to false. Otherwise set it to true.

3. If there are no child entries in <var>mapping entry</var>, then return true for <var>intersects</var>.
3. If there are no child entries in <var>mapping entry</var>, then return <var>intersects</var>.

4. Invoke [$Check entry intersection$] for each child entry referenced in <var>mapping entry</var> with <var>subset definition</var>
as an input. If child entry match mode is conjunctive, then return true for <var>intersects</var> only if all invocations return true.
Otherwise return true only if at least one invocation returns true.
as an input.

5. If child entry match mode is conjunctive, then return true if <var>intersects</var> is true and all invocations in step 4 returned true.
Otherwise return true if <var>intersects</var> is true or at least one invocation in step 4 returned true.

<div class=example>

The table below represents a patch mapping and shows the expected result of an intersection check against various entries. In these examples
when a set (ie. code points, feature tags, design space, child entries) is not specified it is assumed to be the empty set.

<table>
<tr><th>mapping entry</th><th>subset definition</th><th>intersects?</th></tr>
<tr><th>index</th><th>mapping entry</th><th>subset definition</th><th>intersects?</th></tr>
<tr>
<td>0</td>
<td>
```
subset definition {
code points: {1, 2, 3},
feature tags: {},
design space: {}
},
child entries: {},
match mode: disjunctive,
```
</td>
<td>
```
code points: {2},
feature tags: {},
design space: {},
```
</td>
<td>true</td>
</tr>
<tr>
<td>1</td>
<td>
```
subset definition {
code points: {1, 2, 3},
feature tags: {},
design space: {}
code points: {4, 5, 6},
},
child entries: {},
match mode: disjunctive,
```
</td>
<td>
```
code points: {5},
feature tags: {},
design space: {},
code points: {2},
```
</td>
<td>false</td>
</tr>
<td>
<tr>
<td>2</td>
<td>
```
subset definition {
code points: {1, 2, 3},
feature tags: {},
design space: {}
},
child entries: {},
match mode: disjunctive,
```
</td>
<td>
```
code points: {2},
feature tags: {smcp},
design space: {},
```
</td>
<td>true</td>
</tr>
<td>
<tr>
<td>3</td>
<td>
```
subset definition: {
code points: {1, 2, 3},
feature tags: {},
design space: {}
},
child entries: {},
match mode: disjunctive,
```
</td>
<td>
```
code points: {},
feature tags: {smcp},
design space: {},
```
</td>
<td>false</td>
</tr>
<tr>
<td>4</td>
<td>
```
subset definition: {
code points: {},
feature tags: {},
design space: {}
code points: {1, 2, 3},
},
child entries: [
{
subset definition {
code points: {1, 2, 3},
feature tags: {},
design space: {}
},
child entries: {},
match mode: disjunctive,
},
{
subset definition {
code points: {4, 5, 6},
feature tags: {},
design space: {}
},
child entries: {},
match mode: disjunctive,
},
],
child entry indices: {1},
match mode: disjunctive,
```
</td>
<td>
```
code points: {5},
```
</td>
<td>true</td>
</tr>

<tr>
<td>5</td>
<td>
```
subset definition: {
},
child entry indices: {0, 1},
match mode: conjunctive,
```
</td>
<td>
```
code points: {2},
feature tags: {},
design space: {},
```
</td>
<td>false</td>
</tr>
<tr>
<td>6</td>
<td>
```
subset definition: {
code points: {},
feature tags: {},
design space: {}
},
child entries: [
{
subset definition {
code points: {1, 2, 3},
feature tags: {},
design space: {}
},
child entries: {},
match mode: disjunctive,
},
{
subset definition {
code points: {4, 5, 6},
feature tags: {},
design space: {}
},
child entries: {},
match mode: disjunctive,
},
],
child entry indices: {0, 1},
match mode: conjunctive,
```
</td>
<td>
```
code points: {2, 6},
feature tags: {},
design space: {},
```
</td>
<td>true</td>
Expand Down
Loading

0 comments on commit c4cc866

Please sign in to comment.