-* new section in ours.wiring for breaking up S0 S1 S2 S3 into
- P0Q0V0R0 et al.
-* data2safety reads that and computes most things to have the
- exploded version; the exception is layout-data.c SegPosCombInfo.pname
- bidirectional mapping constructed from "movfeatposmap" lines
- map from ([A-Za-z]+[0-9]+)* to ([A-Za-z]+[0-9]+)*
- has two effects:
- - in line_endwiring, used "forwards"
- - when writing out .pname, used "backwards"
- in each case we match only whole feature positions
- by some suitable regexp trick
- we record whether a mapping entry was used, and complain if not
* movpos.c needs to be modified to cope with mixed MovPosChanges
split MovPosChange into two structs, Change which is per-method
push @interfs, { Invert => $invert, Segs => $is };
}
+# We read the movfeatmap and write out most things in the output to
+# have the concrete (RHS) version; the exception is layout-data.c
+# SegPosCombInfo.pname.
+#
+# The FeatMap is a bidirectional mapping constructed from "movfeatposmap"
+# lines, a map between ([A-Za-z]+[0-9]+)* and ([A-Za-z]+[0-9]+)*.
+#
+# It has two effects:
+# - in line_endwiring, used "forwards"
+# - when writing out .pname, used "backwards"
+# in each case we match only whole feature positions by regexp tricks
+# we record whether a mapping entry was used, and complain if not
+
sub begin_movfeatposmap () { }
sub line_movfeatposmap () {
my ($segr,$abstr_namebase,$abstr_firstpos,$abstr_lastpos,$conc_posns) =